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”“
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(二)