建立Solr引擎

準備安裝包

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

由于 ik-analyzer的版本兼容問題,此處提供的可以兼容solr7.x,如果是其他版本的,請注意此問題。

安裝jdk1.8.0

新增配置/etc/profile如下:

#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下,如下圖:


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 目錄下

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分詞器的擴展詞典,停止詞詞典

<?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模塊,進行數據管理,新建命令如下:

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模塊:

    <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引擎及中文分詞的模塊搭建也就全部完成。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一.簡介 Solr是一個獨立的企業級搜索應用服務器,它對外提供類似于Web-service的API接口。用戶可以通...
    泰安青年閱讀 3,690評論 0 37
  • 總結包括:1 了解前端打包方案的黑暗歷史2 模塊化發展3 Webpack3 打包流程 在說webpack之前, 我...
    NOTEBOOK2閱讀 232評論 0 1
  • 目的:泛解析后的域名訪問到tomcat的時候分發到對應的項目中 將tomcat端口修改為80 找到tomcat配置...
    楽祀閱讀 634評論 0 0
  • 家里要搬遷了,對于年邁的父母自然是好事,生活在平房里面,每天還的壓水,拿柴燒火做飯。我從父母的眼中看到了開...
    小櫻桃嬌閱讀 102評論 0 0
  • “我心悅卿卿兮,卿卿悅我乎?”這句話,是我耳聞過最美的告白之一。 可是,這句話,像是在鼓勵那些勇于追求愛情的人去表...
    美文小屋閱讀 587評論 0 0