學習筆記:從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. 查詢檢查匯入資料