ELK--Elasticsearchはikトークナイザープラグインをインストールします
分詞
テキストの段落を個々のキーワードに分割し、検索時に独自の情報をセグメント化し、データベースまたはインデックスライブラリのデータをセグメント化してから、マッチング操作を実行します。
デフォルトの中国語の単語セグメンテーションは、各文字を単語として扱うことですが、これは明らかに要件を満たしていないため、この問題を解決するには、中国語の単語セグメンテーションデバイスikをインストールする必要があります。
- Elasticsearchの組み込みトークナイザー
- 標準-デフォルトのトークナイザー、単語セグメンテーション、小文字処理
- シンプル-文字以外のセグメンテーション(シンボルはフィルタリングされます)によると、小文字の処理
- 停止-小文字処理、ストップワードフィルタリング(the、a、is)
- ホワイトスペース-小文字ではなく、スペースに応じて分割
- キーワード-単語のセグメンテーションなし、出力としての直接入力
- パターン-通常の式、デフォルト\ W +(文字分割以外)
- 言語-30を超える一般的な言語の単語セグメンテーションを提供します
- カスタマーアナライザーカスタムトークナイザー
ikトークナイザー
IKには2種類の粒度があります。
ik_smart
:最も粗い分割を行いますik_max_word
:テキストは最も細かい粒度で分割されます
1.ikトークナイザーをダウンロードします
IKトークナイザーのバージョンでは、同じバージョンのESをインストールする必要があります
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.1/elasticsearch-analysis-ik-6.4.1.zip
2.ファイルを解凍してesインストールディレクトリ/ plugin / ikにコピーします
tar -xvf elasticsearch-analysis-ik-6.4.1.zip
ファイル構造
3、ElasticSearchを再起動します
4、テスト結果
期待に沿わない場合は、ikトークナイザーがカスタムシソーラスをサポートします。たとえば、ここで[朱葛小明]は人の名前ですが、シソーラスをカスタマイズできます。
(1)元のシソーラスを変更し、デフォルトのシソーラスファイルmain.docを変更します
(3)新しいシソーラスファイル:新しいシソーラスファイルmy.dicを追加し、ファイルに独自の単語セグメンテーションを追加し、分岐に注意します。次に、ik / configディレクトリのIKAnalyzer.cfg.xmlファイルを変更し、独自のシソーラスファイルに変更します。
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!‐‐用户可以在这里配置自己的扩展字典 ‐‐>
<entry key="ext_dict">my.dic</entry>
<!‐‐用户可以在这里配置自己的扩展停止词字典‐‐>
<entry key="ext_stopwords"></entry>
</properties>
変更後、esを再起動して有効にします。
変更後の効果: