[エントリーから実際の戦闘までのES] 21。全文検索-ElasticSearch-単語セグメンテーション-単語セグメンテーション&インストールik単語セグメンテーション

セクション20から続く

4.単語のセグメンテーション

tokenizerいずれかを受信する(トークナイザ)は字符流、それが別に分割されtokens、出力、(LUの通常自立語)tokensストリーム。

たとえば、空白の文字tokenizer見つかった場合、空白はテキストを分割します。それは、「テキストますクイックブラウンフォックス!」[分割されQuickbrownfox!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、ikWord 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电商项目"
}

結果:
[外部リンク画像の転送に失敗しました。ソースサイトにリーチ防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-l0aY1xXN-1590760088470)(imgs / 20-2.png)]

  • ik智能分词
POST _analyze
{
    
    
  "analyzer": "ik_smart",
  "text": "pafcmall电商项目"
}

結果:
ここに写真の説明を挿入

POST _analyze
{
  "analyzer": "ik_smart",
  "text": "我是中国人"
}

結果:
ここに写真の説明を挿入

  • ik_max_word分词
POST _analyze
{
    
    
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

結果:
ここに写真の説明を挿入
トークナイザーが異なれば、単語のセグメンテーションに明らかな違いがあることがわかります。したがって、将来的には、デフォルトのマッピングを使用してインデックスを定義できなくなります。トークナイザーを選択する必要があるため、マッピングを手動で作成する必要があります。

参考資料-分析


参照:

Elasticsearchリファレンス

弾性

フルテキスト検索エンジンElasticsearchの使用を開始する

おすすめ

転載: blog.csdn.net/runewbie/article/details/106433407