Elasticsearch 6.8.13 における日本語分詞プラグインのインストール

Elasticsearch のインストール(すでにインストール済みの場合は飛ばす)

Docker を使用して Elasticsearch をインストールするには、次のコマンドを実行します。

docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.13 

ブラウザでアクセスし、正常に表示される場合、インストールが成功しています。

分詞ツールのインストール

公式サイト

方法1 圧縮ファイルをダウンロードしてインストール

ダウンロード先:https://github.com/medcl/elasticsearch-analysis-ik/releases

ダウンロード後、ホストマシンの指定された場所にアップロードします。例:/home/infoadmin/elasticsearch-analysis-ik-6.8.13.zip

次のコマンドでホストマシンのファイルをコンテナ内にコピーします:

docker cp /home/infoadmin/elasticsearch-analysis-ik-6.8.13.zip elasticsearch:/usr/share/elasticsearch/plugins/ik

コンテナにアクセスします:

docker exec -it elasticsearch bash

解凍します:

 cd /usr/share/elasticsearch/plugins/ik/  && unzip elasticsearch-analysis-ik-6.8.13.zip

解凍後は再起動不要です。

方法2 インターネット経由でインストール

コンテナにアクセスした後、次のコマンドを入力します:

/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.13/elasticsearch-analysis-ik-6.8.13.zip

注意:インターネット経由でのインストールはバージョン5.5.1以上でサポートされています。

コンテナで実行するとエラーが発生しました。ネットワーク問題のようですが、詳細な調査は行っていません。圧縮ファイルを使用する方法を推奨します。

テストの検証

コマンドラインから「fenci」という名前のマップデータを追加します:

curl -XPOST http://you_url:9200/index/fenci -H 'Content-Type:application/json' -d'
{
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_smart"
            }
        }
}'

コマンドラインから2つのテストデータを追加します:

curl -XPOST http://you_url:9200/index/fenci/1 -H 'Content-Type:application/json' -d'
{"content":"米国がイラクに残したのは破綻した状況ですか"}
'
curl -XPOST http://you_url:9200/index/fenci/3 -H 'Content-Type:application/json' -d'
{"content":"韓国と中国の漁船警備隊の対立:韓国の警察は毎日平均1隻の中国漁船を差し止めています"}
'

コマンドラインから「国」字が出現する回数を検索します:

curl -XPOST http://you_url:9200/index/_search  -H 'Content-Type:application/json' -d'
{
    "query" : { "match" : { "content" : "国" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}'

実行結果:

タグ: Elasticsearch Docker 分詞 ikプラグイン テキスト解析

5月10日 23:50 投稿