創建Solr引擎

準備安裝包

jdk-8u151-linux-x64.tar.gz:下載地址 solr-7.1.0:下載地址 ik-analyzer-solr7.x.zip:下載地址java

因爲 ik-analyzer的版本兼容問題,此處提供的能夠兼容solr7.x,若是是其餘版本的,請注意此問題。linux

安裝jdk1.8.0

新增配置/etc/profile以下:web

#set java environment
export JAVA_HOME=/usr/local/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
複製代碼

安裝solr7.1

下載solr7.1後解壓至須要放置的目錄,我放在/usr/local/solr-7.1.0下,以下圖: apache

solr5以後發佈版本自帶jetty服務器,能夠自行啓動。bin/solr start [-p port],默認端口號8983。 能夠經過netstat -anp | grep 8983,命令查看端口是否佔用。solr引擎運行後,能夠經過url:http://localhost:8983/solr/#/ ,進入solr管理列表界面,以下圖:

配置中文分詞器IK Analyzer

將ik的jar文件 拷貝到 server/solr-webapp/webapp/WEB-INF/lib 目錄下bash

cp ik-analyzer-solr7x.jar /usr/local/solr-7.1.0/server/solr-webapp/webapp/WEB-INF/lib
複製代碼

將IKAnalyzer配置文件,停滯詞詞典拷貝到server/solr-webapp/webapp/WEB-INF/classes/服務器

cp stopword.dic IKAnalyzer.cfg.xml /usr/local/solr-7.1.0/server/solr-webapp/webapp/WEB-INF/classes/
複製代碼

配置IKAnalyzer分詞器的擴展詞典,中止詞詞典oracle

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 擴展配置</comment>
    <!--用戶能夠在這裏配置本身的擴展字典 
    <entry key="ext_dict">ext.dic;</entry> 
    -->
    <!--用戶能夠在這裏配置本身的擴展中止詞字典-->                    
    <entry key="ext_stopwords">stopword.dic;</entry>
</properties>
複製代碼

配置Solr文件引入IKAnalyzer模塊 須要新建一個core模塊,進行數據管理,新建命令以下:app

bin/solr create -c ifiction
複製代碼

執行成功後會在/usr/local/solr-7.1.0/server/solr生成ifiction文件。 編輯/usr/local/solr-7.1.0/server/solr/ifiction/conf/managed-schema文件,添加下面代碼引入IKAnalyzer模塊:webapp

<fieldType name="text_ik" class="solr.TextField">     
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType> 
複製代碼

配置須要分詞的字段:summary測試

<field name="fid" type="pint" indexed="true" stored="true" multiValued="false" />
    <field name="type" type="pint" indexed="true" stored="true" multiValued="false" />
    <field name="title" type="string" indexed="true" stored="true" multiValued="false" />
    <field name="cover" type="string" indexed="true" stored="true" multiValued="false" />
    <field name="writer" type="string" indexed="true" stored="true" multiValued="false" />
    <field name="tags" type="string" indexed="true" stored="true" multiValued="false" /> 
    <field name="summary" type="text_ik" indexed="true" stored="true" multiValued="false" />
    <field name="updateline" type="pint" indexed="true" stored="true" multiValued="false" />
    <field name="sort_base" type="pint" indexed="true" stored="true" multiValued="false" /> 
                                                                                                                       
    <!-- This can be enabled, in case the client does not know what fields may be searched. It isn't enabled by default because it's very expensive to index everything twice. -->
    <copyField source="title" dest="_text_"/>
    <copyField source="writer" dest="_text_"/>
    <copyField source="tags" dest="_text_"/>
    <copyField source="summary" dest="_text_"/>
複製代碼

配置完成須要重啓solr引擎,sudo /usr/local/solr-7.1.0/bin/solr restart -force。 說明: (1)type="text_ik",是引入IKAnalyzer模塊時的name配置的,下面測試solr的中文分詞以下圖:

(2)copyField 這個是複製字段,將配置的source都收集到 text 域上,能夠用做全文檢索,就如上述英文註釋描述。

至此,solr引擎及中文分詞的模塊搭建也就所有完成。

相關文章
相關標籤/搜索