Solr7.2.1環境搭建和配置ik中文分詞器


solr7.2.1環境搭建和配置ik中文分詞器

安裝環境:Jdk 1.8 windows 10

安裝包准備:

solr 各種版本集合下載:http://archive.apache.org/dist/lucene/solr/

tomcat下載(apache-tomcat-8.5.27-windows-x64.zip):https://tomcat.apache.org/download-80.cgi

下載ik分詞器:IK Analyzer 2012FF_hf1.zip,這里這個版本已經不能使用,ik-analyzer官網:https://code.google.com/p/ik-analyzer/

這個網站不翻牆是訪問不了的,可以去下面這個網站下載:https://www.developerfusion.com/project/41221/ikanalyzer/

IK分詞器2012年以后就沒有更新過,其所依賴的lucene相關組件的版本為4.X,而solr7.2下面的lucene版本為7.2,會導致分詞功能不能正常使用;

解決辦法:需要下載以下兩個分詞jarsolr-analyzer-ik-5.1.0.jar  ik-analyzer-solr5-5.x.jar

下載地址:http://files.cnblogs.com/files/wander1129/ikanalyzer-solr6.5.zip

1、搭建solr環境

1 解壓下載的solr-7.2.1壓縮包,將解壓后的solr-7.2.1文件夾下server\solr-webapp\webapp文件夾拷貝到tomcat安裝目錄下的webapps文件夾中,並重命名為solr。如下圖:

 

2 創建一個solr_home的文件夾作為solr的安裝目錄,如:C:\ProgramFilesTwo\solr_home

3 將解壓后的solr-7.2.1文件夾下server\lib\ext內的所有jar包、server\lib內以metrics開頭的所有jar包,以及gmetric4j-1.0.7.jar復制到tomcat安裝目錄下的webapps\solr\WEB-INF\lib下。

tomcat安裝目錄下的webapps\solr\WEB-INF中,新建一個classes文件夾,將解壓后的solr-7.2.1文件夾下server\resources內的log4j.properties文件拷貝到里面

5 拷貝solr-7.2.1文件夾下server\solr內的所有文件到solr_home的文件夾中(即solr的安裝目錄)

6solr_home文件夾下新建一個logs文件夾。

7修改tomcat安裝目錄下bin文件夾中的catalina.bat,添加solr.log.dir系統變量, 指定solr日志記錄存放地址(即上面創建的logs文件夾路徑)。例如:

set "JAVA_OPTS=%JAVA_OPTS% -Dsolr.log.dir=C:\ProgramFilesTwo\solr_home\logs"

8.solr_home文件夾下新建一個new_core文件夾,將解壓后的solr-7.2.1文件夾下server\solr\configsets\_default下的conf文件夾拷貝到里面,然后修改conf文件夾里solrconfig.xml文件,如下:

改為:

 9.修改tomcat安裝目錄下webapps\solr\WEB-INF內的web.xml文件:

添加內容:

 注釋內容:

10. 修改端口,默認是8080(看需要設置),修改在tomcat安裝目錄下conf文件夾內的server.xml文件:

11.查看solr, http://localhost:8888/solr/index.html#/

點擊Core Admin菜單,如果沒有Core,會彈出如下框,提示添加。

instanceDir:  solr安裝目錄下的new_core文件夾的路徑

dataDir: solr安裝目錄下的new_core\data文件夾的路徑

config: solr安裝目錄下的new_core\conf\solrconfig.xml文件的路徑

schema: solr安裝目錄下的new_core\conf\managed-schema文件的路徑

添加以后就可以選擇使用了

到這里solr的環境就搭建好了,下面開始整合中文分詞器;

 

2、整合分詞器

1、使用.solr7.2.1自帶的中文分詞器

將解壓后的solr-7.2.1\contrib\analysis-extras\lucene-libs下的lucene-analyzers-smartcn-7.2.1.jar 放到Tomcat8\webapps\solr\WEB-INF\lib下。

 Tomcat8\solr_h\solrhome\solr_core\conf找到managed-schema  添加已下代碼

<fieldType name="text_ik_zd" class="solr.TextField" positionIncrementGap="100">
 
     <analyzer type="index">
   
      <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
   
     </analyzer>
   
    <analyzer type="query">
   
      <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
   
    </analyzer>
  </fieldType>

重新啟動Tomcat8,就可以使用solr自帶的分詞器了

2、配置ik中文分詞器(好處:IKAnalyzer支持屏蔽關鍵詞、新詞匯的配置)

解壓IK Analyzer 2012FF_hf1壓縮包:

ext.dic為擴展字典,改為mydict.dic 這個擴展詞收錄了搜狗詞庫

stopword.dic為停止詞字典

IKAnalyzer.cfg.xml為配置文件

solr-analyzer-ik-5.1.0.jar  ik-analyzer-solr5-5.x.jar為分詞jar包。

 

IK分詞器 JAR 包拷貝到C:\ProgramFilesTwo\apache-tomcat-8.5.27\webapps\solr\WEB-INF\lib

將詞典配置文件拷貝到 C:\ProgramFilesTwo\apache-tomcat-8.5.27\webapps\solr\WEB-INF\classes

更改在C:\ProgramFilesTwo\solr_home\new_core\conf找到managed-schema配置文件,添加以下:

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

        <analyzer type="index">

         <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>

        </analyzer>

        <analyzer type="query">

         <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>

        </analyzer>

</fieldType>

 

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

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

        <field name="item_price" type="plong" indexed="true" stored="true"/>

        <field name="item_image" type="string" indexed="false" stored="true" />

        <field name="item_category_name" type="string" indexed="true" stored="true" />

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

 

        <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>

        <copyField source="item_title" dest="item_keywords"/>

        <copyField source="item_sell_point" dest="item_keywords"/>

        <copyField source="item_category_name" dest="item_keywords"/>

        <copyField source="item_desc" dest="item_keywords"/>

 

重新啟動Tomcat8.5.27,就可以使用ik的分詞器了

參考博文:

http://blog.csdn.net/lingzhangjie/article/details/79114993

http://blog.csdn.net/m0_37044606/article/details/79155144

https://www.cnblogs.com/kehaocheng/p/8005532.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM