首页 > 代码库 > solr搜索之demo和集成IKAnalyzer(二)
solr搜索之demo和集成IKAnalyzer(二)
1 新建demo-solr
关闭运行的solr应用。
进入solr目录:D:\solr-4.10.2\example
1、在example目录下创建demo-solr文件夹;
2、将./solr下的solr.xml拷贝到demo-solr目录下;
3、在demo-solr下创建demo目录,并且在demo目录下创建conf和data目录;
4、将example\solr\collection1\core.properties文件拷贝到example\demo-solr\demo下,并且修改name=demo;
5、将example\solr\collection1\conf下的schema.xml、solrconfig.xml拷贝到example\demo-solr\demo\conf下;
6、修改schema.xml文件,使其配置最小化:
【1,solr配置中:<field>name为“_version”“_root_”这两个是必须保留字段
2,<field>type属性值,必须进行<fieldType>定义匹配;】
<?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"/>
<!—type类型,indexed是否索引,stored是否存储,required是否必须,multiValued是否可以为多个值 -->
<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>
7、修改solrconfig.xml文件,修改一些配置,大部分保持默认:
将所有的<lib>标签注释掉;(notepad++ 注释快捷键:ctrl+q 或 ctrl+k)
搜索<str name="df">text</str>替换成<strname="df">title</str>,所有的都要替换
df : default field默认查询索引字段。原来默认text字段是存在的,经过第6步更改以后,是不存在的。所以全部更改为title字段。
将<searchComponent name="elevator"class="solr.QueryElevationComponent" >注释掉(这个的功能类似百度的竞价排名):
8、启动solr:进入:D:\solr-4.10.2\example
java -Dsolr.solr.home=taotao-solr -jar start.jar 指定core项目启动(更改solr应用,指定应用启动):
(-D设置启动运行时参数格式:-D参数名=参数值)
报错:
solrconfig.xml配置文件注释有问题!注意上述:7步骤c) 。
去掉这个多余的注释,再试:
成功!
在不使用其他分词的情况下,测试Analysis分析分词,效果:
2 集成IKAnalyzer中文分词器
下载IKAnalyzer: https://code.google.com/p/ik-analyzer/
IK分词器官方版本是不支持Lucene4.X的,有人基于IK的源码做了改造,支持了Lucene4.X:
https://code.google.com/p/ikanalyzer-4-support/
友情提示:以上两个网站需要翻墙!!!
1、 将IKAnalyzer-2012-4x.jar拷贝到example\solr-webapp\webapp\WEB-INF\lib下;
2、 目录:D:\solr-4.10.2\example\demo-solr\demo\conf,在schema.xml文件中添加fieldType:
<fieldType name="text_ik"class="solr.TextField">
<analyzerclass="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<?xmlversion="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="text_ik" indexed="true" stored="true"multiValued="true"/>
<uniqueKey>id</uniqueKey>
<fieldType name="string"class="solr.StrField" sortMissingLast="true" />
<fieldType name="long"class="solr.TrieLongField" precisionStep="0"positionIncrementGap="0"/>
<!-- 添加IKAnalyzer中文分词器 -->
<fieldType name="text_ik"class="solr.TextField">
<analyzerclass="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
</schema>
注意:StrField和TextField的区别就是:TextField做分词,StrField是不做分词。
3、重启solr应用,在solr界面进行Analysis分析分词测试:
查看title字段定义:已经更新指定为IKAnalyzer分词器
本文出自 “IT技术解决方案” 博客,请务必保留此出处http://wyait.blog.51cto.com/12674066/1945897
solr搜索之demo和集成IKAnalyzer(二)