用於solr5的ansj分詞外掛擴充套件
原始碼:
https://github.com/NLPchina/ansj_seg
jar包:
http://maven.nlpcn.org/org/ansj/
http://maven.nlpcn.org/org/nlpcn/nlp-lang
http://maven.nlpcn.org/org/ansj/tree_split/
生成solr5的ansj外掛:
下載ansj_seg最新原始碼,在ansj_seg的lucene5的外掛專案(ansj_seg/plugin/ansj_lucene5_plug)中做擴充套件,
新增類org.ansj.solr5.AnsjTokenizerFactory,編譯後生成一個新的ansj_lucene5_plug-3.x.x.jar.
package org.ansj.solr5; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.ansj.lucene.util.AnsjTokenizer; import org.ansj.splitWord.analysis.IndexAnalysis; import org.ansj.splitWord.analysis.ToAnalysis; import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.util.TokenizerFactory; import org.apache.lucene.util.AttributeFactory; public class AnsjTokenizerFactory extends TokenizerFactory{ boolean pstemming; boolean isQuery; private String stopwordsDir; public Set<String> filter; public AnsjTokenizerFactory(Map<String, String> args) { super(args); getLuceneMatchVersion(); isQuery = getBoolean(args, "isQuery", true); pstemming = getBoolean(args, "pstemming", false); stopwordsDir = get(args,"stopwords"); addStopwords(stopwordsDir); } //add stopwords list to filter private void addStopwords(String dir) { if (dir == null){ System.out.println("no stopwords dir"); return; } //read stoplist System.out.println("stopwords: " + dir); filter = new HashSet<String>(); File file = new File(dir); InputStreamReader reader; try { reader = new InputStreamReader(new FileInputStream(file),"UTF-8"); BufferedReader br = new BufferedReader(reader); String word = br.readLine(); while (word != null) { filter.add(word); word = br.readLine(); } br.close(); } catch (FileNotFoundException e) { System.out.println("No stopword file found"); } catch (IOException e) { System.out.println("stopword file io exception"); } } @Override public Tokenizer create(AttributeFactory factory) { if(isQuery == true){ //query return new AnsjTokenizer(new ToAnalysis(), filter); } else { //index return new AnsjTokenizer(new IndexAnalysis(), filter); } } }
這裡使用solr5自帶的jetty進行部署,將分詞外掛及依賴的jar包放到/opt/solr/server/solr-webapp/webapp/WEB-INF/lib目錄下:
ansj_lucene5_plug-3.7.3.jar
ansj_seg-3.7.3.jar
nlp-lang-1.5.jar
分詞配置檔案(library.properties)放到/opt/solr/server/resources目錄下。
在schema中配置擴充套件分詞的fieldType:
<fieldType name="text_ansj" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.ansj.solr5.AnsjTokenizerFactory" isQuery="false" stopwords="/path/to/stopwords.dic"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.ansj.solr5.AnsjTokenizerFactory" stopwords="/path/to/stopwords.dic"/>
</analyzer>
</fieldType>
相關推薦
用於solr5的ansj分詞外掛擴充套件
原始碼: https://github.com/NLPchina/ansj_seg jar包: http://maven.nlpcn.org/org/ansj/ http://maven.nlpcn.org/org/nlpcn/nlp-lang http://maven.
elasticsearch ik分詞外掛的擴充套件字典和擴充套件停止詞字典用法
擴充套件字典中的詞會被篩選出來,擴充套件停止詞中的詞會被過濾掉 1.沒有加入擴充套件字典 停止詞字典用法 ik [[email protected] custom]# curl -i -X GET -H 'Content-type:application/js
簡單上手用於中文分詞的隱馬爾科夫模型
前段時間一直在看自然語言處理方面的知識,所以不可避免的接觸到了隱馬爾科夫模型和條件隨機場模型。這兩個模型可以說是自然語言處理方向的基礎模型了,所以自然而然對它們上心許多。它們之間也確實是有許多的異同,當時為了清晰地區分開它們,確實是花費了我好一陣子時間,而且到現在自己也還沒有完完全全把它們吃透,但還
ElasticSearch安裝中文分詞外掛smartcn
elasticsearch安裝中文分詞器外掛smartcn elasticsearch預設分詞器比較坑,中文的話,直接分詞成單個漢字。 我們這裡來介紹下smartcn外掛,這個是官方推薦的,中科院搞的,基本能滿足需求; 還有另外一個IK分詞器。假如需要自定義詞庫的話,那就去搞下IK,主頁地址:htt
elasticsearch分詞外掛安裝
官方地址:https://github.com/medcl/elasticsearch-analysis-ik 兩種安裝方式: 1. 進入elasticsearch-6.5.0/plugins/然後 mkdir ik cd ik wget https://github.com
搜尋框架搭建1:elasticsearch安裝和視覺化工具kibana、分詞外掛jieba安裝
elasticsearch安裝和視覺化工具kibana、分詞外掛jieba安裝 1 Windosw環境 1.1 java環境安裝 1.2 elasticsearch安裝 1.3 視覺化介面kibana安裝 1.
Elasticsearch通過docker安裝及安裝中文分詞外掛
本文講解CentOS 7通過docker安裝Elasticsearch及中文外掛安裝。 系統配置 這個配置具體作用,我也不懂,不配置的話,可能會啟動失敗 sudo sysctl -w vm.max_map_count=262144 啟動ES dock
網站中用lucene全文搜尋引擎和ansj分詞外掛之ansj配置檔案的正確寫法
不介紹: 怎麼下載?怎麼使用?下載後都有demo的。 這裡只說關鍵的: 1.把lucene的lucene-analyzers-common-7.4.0.jar、lucene-core-7.4.0.jar和lucene-queryparser-7.4.0.jar匯
ElasticSearch學習筆記之三十三 IK分詞器擴充套件字典及text全文型別資料分詞聚合查詢
ElasticSearch學習筆記之三十三 IK分詞器擴充套件字典及text全文型別資料分詞聚合查詢 專屬詞彙分詞失敗 擴充套件字典 檢視當前詞庫 自定義詞典 更新配置 再次檢視分詞 text全文型別資料分詞聚合
elasticsearch安裝中文分詞外掛
下載 下載和elaticsearch對應版本的ik分詞https://github.com/medcl/elasticsearch-analysis-ik/releases 安裝 elasticsearch-plugin install -b file:///elasticsearch-analysis
elasticsearch安裝和視覺化工具kibana、分詞外掛jieba安裝
Elasticsearch前身為Lucene,是一個分散式可擴充套件的實時搜尋和分析引擎。 為了更好地使用Elasticsearch,會安裝相應的工具或外掛,如視覺化工具kibana,分詞外掛jieba。windows環境和Linux環境下安裝elastics
ElasticSearch官方預設的分詞外掛
elasticsearch官方預設的分詞外掛,對中文分詞效果不理想。 比如,我現在,拿個具體例項來展現下,驗證為什麼,es官網提供的分詞外掛對中文分詞而言,效果差。總結 如果直接使用Elast
ElasticSearch5.0——中文分詞外掛IK安裝
小知識: ElasticSearch預設分詞器的配置。已知ES預設的分詞器是標準分詞器Standard。如果需要修改預設分詞器可以做如下設定: 在配置檔案config/elasticsearch.yml中新增 index.anlysis.analyzer.default
elasticsearch 2.3.4中文分詞外掛ik 1.9.4安裝
網上的很多教程全部都是很久以前的,版本太老了,安裝方式不同。弄了半天總算是裝好了。 ES的安裝過程就不說了,直接說ik的。 git連結:https://github.com/medcl/elastic
Elasticsearch之安裝ik分詞外掛
IK簡介 IK Analyzer是一個開源的,基於java語言開發的輕量級的中文分詞工具包。從2006年12月推出1.0版開始, IKAnalyzer已經推出了4個大版本。最初,它是以開源專案Luence為應用主體的,結合詞典分詞和文法分析演算法的中文分片語件
hanlp for elasticsearch(基於hanlp的es分詞外掛)
摘要:elasticsearch是使用比較廣泛的分散式搜尋引擎,es提供了一個的單字分詞工具,還有一個分詞外掛ik使用比較廣泛,hanlp是一個自然語言處理包,能更好的根據上下文的語義,人名,地名,組織機構名等來切分詞 Elasticsearch 預設分
Elasticsearch5.4.0 IK分詞外掛安裝詳解
1、ES5.4.0 IK分詞安裝步驟 步驟1:下載最新版的ik外掛 步驟2:解壓elasticsearch-analysis-ik-master.zip unzip elasticsearch-analysis-ik-master.zip
elasticsearch6.2.2安裝中文分詞外掛IK analyzer
哎,裝了一下午的ik終於裝上了,發現自己真的是非常笨了,並且es重啟過程中遇到了很多的問題,下面我將手把手教大家如何安裝ik,儘可能細緻些,如果大家哪裡不懂的可以留言或者發email到本人郵箱[email protected],這裡我下載的es 版本為
Windows系統中Elasticsearch安裝中文分詞外掛elasticsearch-analysis-ik
前言系統:Windows10elasticsearch版本:5.6.6中文分詞版本:5.6.6(需要與elasticsearch版本匹配)maven版本:3.5.5安裝step1 官網下載合適的版本選擇合適的版本,並下載: step2 解壓到某個目錄下目錄結構如下:step3
elasticsearch 6.x 叢集佈署與head、Kibana和IK分詞外掛的配置
首先準備三臺linux伺服器,在三臺伺服器上安裝ElasticSearch.6.3,及其head、Kibana和IK分詞外掛,外掛只需安裝在其中一臺即可。elasticsearch 6.x以後變化有點的,head和Kibana,不能放在elasticsear