1. 程式人生 > >學習筆記:從0開始學習大資料-29. solr增加ik中文分詞器並匯入doc,pdf文件全文檢索

學習筆記:從0開始學習大資料-29. solr增加ik中文分詞器並匯入doc,pdf文件全文檢索

環境 centos7,solr7.5.0

1. 新建core

從  solr-7.5.0/example/files/conf 作為配置檔案模板,建立core,名為mycore

2.下載分詞器

https://search.maven.org/search?q=g:com.github.magese 下載    ik-analyzer-7.5.0.jar

複製到 solr-7.5.0/server/solr-webapp/webapp/WEB-INF/lib 目錄下

3. 修改 mycore/conf/managed-schema 檔案,增加:

  <!-- ik分詞器 --> 
<fieldType name="text_ik" class="solr.TextField"> 
<analyzer type="index"> 
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
<analyzer type="query"> 
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
</fieldType> 

並修改 ,原來的 text_simple 修改為新增的text_ik  即指定用新的分詞器去對這幾個欄位內容分詞。文字內容根據設定可儲存在索引庫,也可以不儲存。

4.修改  mycore/conf/tika-data-config.xml 檔案 全文:

<dataConfig>
  <dataSource type="BinFileDataSource"/>
  <document>
    <entity name="file" processor="FileListEntityProcessor" dataSource="null"
            baseDir="${solr.install.dir}/example/exampledocs" fileName=".(pdf)|(doc)|(docx)"
            rootEntity="false">

      <field column="file" name="id"/>

      <entity name="pdf" processor="TikaEntityProcessor"
              url="${file.fileAbsolutePath}" format="text">

        <field column="Author" name="author" meta="true"/>
        <!-- in the original PDF, the Author meta-field name is upper-cased,
          but in Solr schema it is lower-cased
         -->

        <field column="title" name="title" meta="true"/>
        <field column="dc:format" name="format" meta="true"/>

        <field column="text" name="text"/>

      </entity>
    </entity>
  </document>
</dataConfig>

注意 filename匹配或萬用字元指定掃描的檔案型別,baseDir="${solr.install.dir}/example/exampledocs"  這個指定要匯入的檔案存放位置。

5. 測試

6.匯入doc文件

把要匯入的文件存放在指定目錄,然後執行匯入

7. 查詢檢查匯入資料