上一篇:solr搜索之mysql导入数据到solr(四)

1      tomcat上运行solr

 

准备环境:

 

    apache-tomcat-7.0.77.zip

 

solr-4.10.2.zip

 

    java version:1.7

 

 

下载tomcat:http://tomcat.apache.org/

 

下载solr:http://lucene.apache.org/solr/ or  http://www.apache.org/dyn/closer.cgi/lucene/solr/

 

==============================================================================

 

1、解压tomcat

路径:F:\tomcat\apache-tomcat-7.0.77

2、将solr-4.10.2\example\webapps\solr.war这个war包复制到apache-tomcat-7.0.77\webapps下。(删除apache-tomcat-7.0.77\webapps目录下原有的所有文件),并解压solr.war

wKiom1lkJuHBfEViAAAbiiGx7xA221.png

3、在任意盘符下(我这里用F盘),在F盘下新建一个文件夹:solrhome,solr-4.10.2\example\solr文件夹下的所有文件复制到F:/solrhome(比如:collection1solr.xml,别的可以删除,暂时用不到)该目录下存放的是core相关的文件夹。

wKioL1lkJumS7L4oAAAaVuJLpnQ800.png

4、将solr-4.10.2\example\lib\ext下的所有jar包复制到apache-tomcat-7.0.72\webapps\solr\WEB-INF\lib

 

5、修改apache-tomcat-7.0.77\webapps\solr\WEB-INF下的web.xml文件(放开原先的注释并修改)    

<env-entry>

      <env-entry-name>solr/home</env-entry-name>

      <env-entry-value>F:\solrhome</env-entry-value>

      <env-entry-type>java.lang.String</env-entry-type>

   </env-entry>

6、在apache-tomcat-7.0.77\webapps\solr\WEB-INF下新建一个classes文件夹,并把solr-4.10.2\example\resources下的log4j.properties日志文件复制到这classes文件夹下。

wKiom1lkJvHy2UwIAAAc1crJyEk036.png

7、启动tomcat,访问:localhost:8080/solr

wKioL1lkJwDQA6w5AACvwwQRUfI946.png

1.1    solr中添加core

参考4

1,  进入f:/solrhome目录下,复制collection1文件夹,重命名为:cat

2,  进入/cat目录下,修改:core.properties文件:

wKioL1lkJwuwv-XzAAACQ8h4-H4390.png

3,  进入conf目录下,除solrconfig.xmlschema.xml文件外全部删除;并删除data目录下所有文件

wKiom1lkJxOAP1rmAAAcMKppAro599.png

4,  修改conf目录下的schema.xml配置文件,参考第四章6节的配置。

<?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="title" type="string"indexed="true" stored="true" multiValued="true"/>

       <!—唯一key-->

       <uniqueKey>id</uniqueKey>

 

   <fieldType name="string" class="solr.StrField"sortMissingLast="true" />

   <fieldType name="long" class="solr.TrieLongField"precisionStep="0" positionIncrementGap="0"/>

</schema>

5,  修改solrconfig.xml配置,参考solr搜索之demo和集成IKAnalyzer(二)

(此处省略。。。)

6,  重启tomcat,访问:http://localhost:8080/solr

wKioL1lkJyDjWdCkAAD1Nm2-thQ843.png

1.2    集成IKAnalyzer分词器

参考5

1,IKAnalyzer分词器jar包,放在F:\tomcat\apache-tomcat-7.0.77\webapps\solr\WEB-INF\lib目录下

2,修改F:\solrhome\cat\conf目录下的schema.xml配置文件:

wKioL1lkJ3-yknLcAACDi6JlevE654.png

3,重启tomcat浏览器中访问:localhost:8080/solr, 选择simple-->Analysis,重新上面的操作看效果:

wKioL1lkJ4njEebZAADHAkPYrxY704.png

 

wKiom1lkJ5WDHPz8AADMsiN4ZgA137.png

1.3    mysql导入数据到solr

参考solr搜索之mysql导入数据到solr(四)

1.3.1     配置实现

1,将准备的两个jar包放在F:\tomcat\apache-tomcat-7.0.77\webapps\solr\WEB-INF\lib目录下

wKiom1lkJ6KSFTayAAAIVRGrRgE148.png

2,将准备的data-config.xml文件复制到solrhome\cat\conf目录下,和schema.xml同一目录:

data-config.xml内容:

<dataConfig>

   <dataSource type="JdbcDataSource"driver="com.mysql.jdbc.Driver"

       url="jdbc:mysql://localhost:3306/test" user="root"password="123456"

       batchSize="100" />

   <document>

       <entity name="user" pk="id"

           query="SELECT id,name,sex,title,insert_time,update_time FROMuser"

           deltaImportQuery="SELECT id,name,sex,title,insert_time,update_timeFROM user where id='${dataimporter.delta.id}'"

                     deletedPkQuery="selectid from user where update_time &lt; NOW()"

           deltaQuery="SELECT id FROM user where update_time >'${dataimporter.last_index_time}'">

           <field column="id" name="id" />

           <field column="name" name="name" />

           <field column="sex" name="sex" />

                     <fieldcolumn="title" name="title" />

           <field column="insert_time" name="insertTime"/>

           <field column="update_time" name="updateTime"/>

       </entity>

   </document>

</dataConfig>

wKiom1lkJ62wRYzMAAAq4WcZU8E415.png

3,修改solrhome/cat/conf目录下的solrconfig.xml文件:

<requestHandlername="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler">

    <lst name="defaults">

         <strname="config">data-config.xml</str>

    </lst>

  </requestHandler>

wKioL1lkJ7qDB316AAB605lrIMM110.png

注意:上面这样放,是错误的,启动报错!必须放在<config>标签内:

wKioL1lkJ8nBRqpCAADYYKm3pag241.png

4,修改solrhome/cat/conf目录下的schema.xml文件:

<?xmlversion="1.0" encoding="UTF-8" ?>

<schemaname="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="text_ik" indexed="true" stored="true" />

   <field name="title"type="text_ik" indexed="true" stored="true"/>

   <field name="sex"type="int" indexed="false" stored="true" />

   <!-- field标签中的name值必须和data-config.xml中的fileld标签name值保持一致 -->

   <field name="insertTime"type="date" indexed="true" stored="true" />

   <field name="updateTime"type="date" indexed="true" stored="true"/>

 

       <uniqueKey>id</uniqueKey>

       <fieldType name="int"class="solr.TrieIntField" precisionStep="0"positionIncrementGap="0"/>

    <fieldType name="string"class="solr.StrField" sortMissingLast="true" />

    <fieldType name="long"class="solr.TrieLongField" precisionStep="0"positionIncrementGap="0"/>

       <fieldType name="date"class="solr.TrieDateField" precisionStep="0"positionIncrementGap="0"/>

       <!-- 添加IKAnalyzer中文分词器 -->

       <fieldType name="text_ik"class="solr.TextField">  

     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>  

       </fieldType>

 

</schema>

1、  启动tomcat,浏览器访问:locahost:8080/solr 原来的cat中数没有任何数据的。

2、导入数据:

wKiom1lkJ9mAXekaAAEO6krJk-A691.png

7:查看数据:

wKiom1lkJ-jjXiOuAADmfGdOaJs780.png

 

 

solr搜索技术 系列文章:

solr搜索之入门及原理(一)

solr搜索之demo和集成IKAnalyzer(二)

solr搜索之solrJ语法(三)

solr搜索之mysql导入数据到solr(四)

solr搜索之tomcat运行solr(五)