1. 程式人生 > >solr搜索之demo和集成IKAnalyzer(二)

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

solr solr搜索 ikanalyzer分詞器 ikanalyzer

1 新建demo-solr

關閉運行的solr應用。

進入solr目錄:D:\solr-4.10.2\example

1example目錄下創建demo-solr文件夾;

2./solr下的solr.xml拷貝到demo-solr目錄下;

3demo-solr下創建demo目錄,並且在demo目錄下創建confdata目錄;

4example\solr\collection1\core.properties文件拷貝到example\demo-solr\demo下,並且修改name=demo

技術分享

5example\solr\collection1\conf下的schema.xmlsolrconfig.xml拷貝到example\demo-solr\demo\conf下;

技術分享

6修改schema.xml文件,使其配置最小化:

1solr配置中:<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文件,修改一些配置,大部分保持默認:

  1. 將所有的<lib>標簽註釋掉;(notepad++ 註釋快捷鍵:ctrl+q ctrl+k

技術分享

  1. 搜索<str name="df">text</str>替換成<strname="df">title</str>所有的都要替換

df : default field默認查詢索引字段。原來默認text字段是存在的,經過第6步更改以後,是不存在的。所以全部更改為title字段。

技術分享

  1. <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>

註意:StrFieldTextField的區別就是:TextField做分詞,StrField是不做分詞。

3、重啟solr應用,在solr界面進行Analysis分析分詞測試:

技術分享

查看title字段定義:已經更新指定為IKAnalyzer分詞器

技術分享


本文出自 “IT技術解決方案” 博客,請務必保留此出處http://wyait.blog.51cto.com/12674066/1945897

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