自定义solr core

2016-06-13|来源:

在tomcat中部署solr

1、对apache-tomcat-7.0.53.zip解压,并将E:\dev\solr\solr-4.10.4\dist\solr-4.10.4.war拷贝到Tomcatwebapp目录下改名为solr.war,解压solr.war为solr,把solr.war删除



2、创建solrhome2,将solr-4.10.4\example\solr下的solr.xml拷贝到solrhome2目录下


3、在solrhome2目录下创建mysolr目录,并且在mysolr创建conf和data目录


4、将solr-4.10.4\example\solr\collection1\core.properties拷贝到solrhome2/mysolr目录下,并且修改core.properties

name=mysolr

5、将solr-4.10.4\example\solr\collection1\conf下的schema.xml、solrconfig.xml拷贝到solrhome2/mysolr/conf目录下


6、修改solrhome2/mysolr/conf/schema.xml,内容如下


<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.5">
    <field name="_version_" type="long" indexed="true" stored="true"/>
    <field name="_root_" type="string" indexed="true" stored="false"/>
    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="name" type="string" indexed="true" stored="true"/>
    <field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
    <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
    <uniqueKey>id</uniqueKey>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
</schema>
把solr-4.10.4\example\solr\collection1\conf目录下的 stopwords.txt和 synonyms.txt拷贝到solrhome2/mysolr/conf目录下

7、修改solrhome2/mysolr/conf/ solrconfig.xml ,修改以下内容,其他的保持默认

a、把所有lib标签注释掉

<!--
  <lib dir="${solr.install.dir:../../..}/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-cell-\d.*\.jar" />
  <lib dir="${solr.install.dir:../../..}/contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
  <lib dir="${solr.install.dir:../../..}/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-langid-\d.*\.jar" />
  <lib dir="${solr.install.dir:../../..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
-->
b、搜索 <str name="df">text</str>替换成 <str name="df">title</str>

c、注释掉以下代码

<!-- <searchComponent name="elevator" class="solr.QueryElevationComponent" > -->
    <!-- pick a fieldType to analyze queries -->
    <!-- <str name="queryFieldType">string</str>
    <str name="config-file">elevate.xml</str>
  </searchComponent> -->


8、修改Tomcat目录 下webapp\solr\WEB-INF\web.xml文件,设置 solr home

<env-entry>
   <env-entry-name>solr/home</env-entry-name>
   <env-entry-value>E:/dev/solr/solrhome2</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>


9、拷贝example\lib\ext 目录下所有jar包到Tomcatwebapp\solr\WEB-INF\lib目录下

10、启动Tomcat,并访问http://localhost:8080/solr


相关问答

更多

solr配置文件core.properties怎么生成

从5.0开始,solr采用了自动发现模式(discovery,区别于传统模式legacy),Solr会自动找到安装目录中、或solr_home中的配置文件:core.properties,并根据里面的name属性来初始化相对于的core。solr.xml中仍然会定义一些配置参数,但是core本身不会定义在这个文件中。 Solr会递归搜索所有solr和solr_home目录和子目录,当在一个目录中发现core.properties后,就停止搜索当前目录的所有子目录,转向下一个同级目录搜索。所以,下面 ...

自定义标签怎么写的啊?

(1) 编写JSP,在JSP中使用自定义标签。 (2) 在web.xml中指定JSP中使用的标签的.tld(标签库描述文件)文件的位置。 (3) .tld文件中指定标签使用的类。 3. 自定义标签的分类: (1) 简单标签:如< mytag:helloworld/> (2) 带属性标签:如<imytag:checkinput dbname = “<myBean.getDBName()>”/> (3) 带标签体的标签: 在自定义标签的起始和结束标签之间的部分为标签体(Body)。Body的内容可以是 ...

Java ,自定义注解怎么使用

java中自定义注解的使用方法: 首先声明一个接口,并未它添加注解内容! package testAnnotation; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Documented @Retention(RetentionPolicy.RUNTIME) public @interface ...

mysql 怎么创建自定义函数

DELIMITER $$ DROP FUNCTION IF EXISTS `sp_test`.`getdate`$$ CREATE FUNCTION `sp_test`.`getdate`(gdate datetime) RETURNS varchar(255) BEGIN DECLARE x VARCHAR(255) DEFAULT ''; SET x= date_format(gdate,'%Y年%m月%d日%h时%i分%s秒'); RETURN x; END $$ DELIMITER ;

在SQL中怎样调用自定义函数?

在select后跟你的自定义函数就可以。 mysql中用select调用自带的now()函数: mysql> select now(); 然后mysql就会返回当前的时间。

专题教程

相关文章

更多

最近更新

更多