上一篇: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
3、在任意盘符下(我这里用F盘),在F盘下新建一个文件夹:solrhome,将solr-4.10.2\example\solr文件夹下的所有文件复制到F:/solrhome中(比如:collection1和solr.xml,别的可以删除,暂时用不到),该目录下存放的是core相关的文件夹。
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文件夹下。
7、启动tomcat,访问:localhost:8080/solr
1.1 solr中添加core
参考4章
1, 进入f:/solrhome目录下,复制collection1文件夹,重命名为:cat
2, 进入/cat目录下,修改:core.properties文件:
3, 进入conf目录下,除solrconfig.xml和schema.xml文件外全部删除;并删除data目录下所有文件
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
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配置文件:
3,重启tomcat,浏览器中访问:localhost:8080/solr, 选择simple-->Analysis,重新上面的操作看效果:
1.3 mysql导入数据到solr
1.3.1 配置实现
1,将准备的两个jar包放在F:\tomcat\apache-tomcat-7.0.77\webapps\solr\WEB-INF\lib目录下
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 < 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>
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>
注意:上面这样放,是错误的,启动报错!必须放在<config>标签内:
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、导入数据:
7:查看数据:
solr搜索技术 系列文章:
转载于:https://blog.51cto.com/wyait/1946173