セクション20から続く
4.単語のセグメンテーション
tokenizer
いずれかを受信する(トークナイザ)は字符流
、それが別に分割されtokens
、出力、(LUの通常自立語)tokens
ストリーム。
たとえば、空白の文字tokenizer
が見つかった場合、空白はテキストを分割します。それは、「テキストますクイックブラウンフォックス!」[分割されQuick
、brown
、fox!
L.
tokenizer
(トークナイザ)はまた、種々の記録のために責任があるterm
順序または(エントリ)position
(のための位置phrase
のフレーズ及びword proximity
単語隣接クエリ)を、およびterm
で表される元の(エントリー)word
の(ワード)start
(開始)とend
の(終了)character offsets
(文字オフセット)(検索コンテンツを強調表示するために使用されます)。
Elasticsearch
多くの組み込みトークナイザーが提供されており、カスタムアナライザー(カスタムトークナイザー)の構築に使用できます。
ESのデフォルトの標準トークナイザーをテストします
英文
::
POST _analyze
{
"analyzer": "standard",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
中文
:
POST _analyze
{
"analyzer": "standard",
"text": "pafcmall电商项目"
}
1)、ikトークナイザーをインストールします
注意
:自動インストールにデフォルトのelasticsearch-plugin installxxx.zipを使用することはできません
行くためにhttps://github.com/medcl/elasticsearch-analysis-ik/releases
対応するESバージョンのインストールを見つけます
1、进入 es 容器内部 plugins 目录
docker exec -it 容器id /bin/bash
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
2.インストールwget
:
yum install wget
3、ik
Word BreakerのダウンロードおよびESマッチングバージョン:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
4、unzip
ファイルをダウンロードして抽出します
1)unzip
解凍elasticsearch-analysis-ik-7.4.2.zip
検出unzip
コマンドがインストールされていない場合は、インストールしますunzip
2)ファイルをplugins
ディレクトリik
ディレクトリに抽出します
3)アーカイブを削除し、ik
ディレクトリとそのファイルを承認します
rm -rf *.zip
chmod -R 777 ik/
5.トークナイザーがインストールされているかどうかを確認できます
cd../bin
elasticsearch plugin list:即可列出系统的分词器
1)、dockerにesコンテナを入力します
2)、システムのトークナイザーをリストします
6. ESを再起動して、ikトークナイザーを有効にします
docker restart elasticsearch
2)、トークナイザーをテストします
使用默认分词
:
POST _analyze
{
"analyzer": "standard",
"text": "pafcmall电商项目"
}
結果:
ik智能分词
:
POST _analyze
{
"analyzer": "ik_smart",
"text": "pafcmall电商项目"
}
結果:
POST _analyze
{
"analyzer": "ik_smart",
"text": "我是中国人"
}
結果:
ik_max_word分词
:
POST _analyze
{
"analyzer": "ik_max_word",
"text": "我是中国人"
}
結果:
トークナイザーが異なれば、単語のセグメンテーションに明らかな違いがあることがわかります。したがって、将来的には、デフォルトのマッピングを使用してインデックスを定義できなくなります。トークナイザーを選択する必要があるため、マッピングを手動で作成する必要があります。
参照: