Linux環境下Tomcat部署Solr4.x

Linux環境下Tomcat部署Solr

  • 最近接手了公司搜索相關的業務,因爲其使用的是Solr,故趁着週末本身鼓搗下;java

  • 因爲業務上使用的是Solr4.2.0版本,所以在學習時,使用相對較老的版本Solr4.9.0,當前已經更新到Solr6.6.0本文記錄本身在學習過程當中的一些收穫;web

準備工做

  1. 到官網下載Solr4.9.0算法

  2. JDKSolr5.0可使用1.6的,以後必須使用1.7以上,Solr6.0以上至少使用JDK1.8apache

  3. 下載Tomcattomcat

安裝步驟以下:

  1. 將下載的solr-4.9.0.tgz解壓到指定目錄.好比/home/pekxxoo/solr/solr-4.9.0app

  2. /home/pekxxoo/solr/solr-4.9.0/example/webapps下的solr.war文件拷貝到tomcat->webapps目錄下webapp

  3. 新建文件夾/home/pekxxoo/solr/solr_home,並將/home/pekxxoo/solr/solr-4.9.0/example/solr目錄拷貝到/home/pekxxoo/solr/solr_home工具

  4. 切換到tomcat/bin目錄下,啓動tomcat.此時tomcat會把solr.war文件進行解壓生成一個solr文件夾,而後中止tomcat(./shutdown.sh)學習

  5. 編譯tomcat目錄下/webapps/solr/WEB-INF/web.xml,找到下面的代碼:優化

    <!--
    <env-entry>
      <env-entry-name>solr/home</env-entry-name>     
      <env-entry-value>/home/pekxxoo/solr/solr_home/solr</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    -->

    打開註釋,修改成:

    <env-entry>
        <env-entry-name>solr/home</env-entry-name>
        <!--此處爲solr_home的地址,我配置的路徑是/home/pekxxoo/solr/solr_home/solr-->
        <env-entry-value>/home/pekxxoo/solr/solr_home/solr</env-entry-value>
        <env-entry-type>java.lang.String</env-entry-type>
      </env-entry>
  6. /home/pekxxoo/solr/solr-4.9.0/example/lib/ext目錄下jar包所有拷貝到tomcat目錄下webapps/solr/WEB-INF/lib目錄下

  7. tomcat/webapps/solr/WEB-INF/目錄下新建classes目錄,將/home/pekxxoo/solr/solr-4.9.0/example/resources目錄下的log4j.properties文件拷貝到tomcat/webapps/solr/WEB-INF/classes目錄下

  8. /home/pekxxoo/solr/solr_home/solr/collection1/conf目錄下打開solrconfig.xml配置,搜索solr.clustering.enabled找到以下配置文件:

    <searchComponent name="clustering" enable="${solr.clustering.enabled:false}" class="solr.clustering.ClusteringComponent" >
    將true改成false便可(`solr4.9.0`默認爲false,4.5以前須要手動修改)
  9. 啓動tomcat,訪問http://localhost:8080/solr

添加中文分詞

介紹

IK Analyzer 2012 介紹

IK Analyzer 是一個開源的,基亍 java 語言開發的輕量級的中文分詞工具包。從 2006年 12 月推出 1.0 版開始, IKAnalyzer 已經推出了 4 個大版本。最初,它是以開源項目Luence 爲應用主體的,結合詞典分詞和文法分析算法的中文分詞組件。從 3.0 版本開始,IK 發展爲面向 Java 的公用分詞組件,獨立亍 Lucene 項目,同時提供了對 Lucene 的默認優化實現。在 2012 版本中,IK 實現了簡單的分詞歧義排除算法,標誌着 IK 分詞器從單純的詞典分詞向模擬語義分詞衍化。

IK Analyzer 2012 結構設計

image.png

分詞效果示例

IK Analyzer 2012 版本支持 細粒度切分智能切分,如下是兩種切分方式的演示樣例。

文本原文 :
IKAnalyzer 是一個開源的,基亍 java 語言開發的輕量級的中文分詞工具包。從 2006 年 12月推出 1.0 版開始, IKAnalyzer 已經推出了 3 個大版本。

智能分詞結果:
ikanalyzer | 是 | 一個 | 開源 | 的 | 基亍 | java | 語言 | 開發 | 的 | 輕量級 | 的 | 中文 | 分詞 | 工具包 | 從 | 2006年 | 12月 | 推出 | 1.0版 | 開始 | ikanalyzer | 已經 | 推| 出了 | 3個 | 大 | 版本
最細粒度分詞結果:
ikanalyzer | 是 | 一個 | 一 | 個 | 開源 | 的 | 基亍 | java | 語言 | 開發 | 的 | 輕量級| 量級 | 的 | 中文 | 分詞 | 工具包 | 工具 | 包 | 從 | 2006 | 年 | 12 | 月 | 推出 | 1.0 | 版 | 開始 | ikanalyzer | 已經 | 推出 | 出了 | 3 | 個 | 大 | 版本

安裝步驟

  1. 首先須要下載ik-analyzer分詞包,點擊下載

  2. 將下載的IK Analyzer 2012FF_hf1.zip包解壓縮包含:

    • 《IKAnalyzer 中文分詞器 V2012 使用手冊》(即本文檔)

    • IKAnalyzer2012.jar(主 jar 包)

    • IKAnalyzer.cfg.xml(分詞器擴展配置文件)

    • stopword.dic(中止詞典)

    • LICENSE.TXT ; NOTICE.TXT (apache 版權申明)

  3. IKAnalyzer2012.jar 拷貝到項目的lib目錄中,個人目錄爲/home/pekxxoo/java/tomcat7.0.81/webapps/solr/WEB-INF/lib

  4. IKAnalyzer.cfg.xmlstopword.dic 文件放置在 class 根目錄(對亍 web 項目,一般是
    WEB-INF/classes 目彔,同 hibernate、log4j 等配置文件相同)下便可。

  5. 修改core/conf/schema.xml文件,添加配置信息以下:

    <fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer" isMaxWordLength="false"/>
        <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer" isMaxWordLength="true"/>
     </fieldType>
  6. 最後修改相應須要中文分詞的字段的type類型便可:

    <field name="title" type="text_ik" indexed="true" stored="true" multiValued="true"/>
  7. 重啓tomcat服務
    若是以前已經建立了索引,須要將以前的索引刪掉,從新建立分詞後的索引。

遇到的問題:
在 Solr4.0 發佈之後,官方取消了 BaseTokenizerFactory 接口,而直接使用 Lucene Analyzer 標準接口。所以 IK分詞器 2012 FF 版本也取消了org.wltea.analyzer.solr.IKTokenizerFactory類。
所以在下載的時候注意下載IK Analyzer 2012FF_hf1.zip版本

相關文章
相關標籤/搜索