🔍
Docker ComposeでElasticsearch + Sudachiの環境を構築する (2022/08版)
概要
この記事では、全文検索エンジンElasticsearchに形態素解析器Sudachiを利用する環境をDocker Composeで簡単に構築する方法を説明します。
こうした記事はウェブ上で多く書かれておりますが、バージョンや設定が古くなっていたりとそのままでは動かなくなっているため、現時点での構築事例ということでアップデートを行いたいと思います。当然ながら本記事も古くなっていくものと思われますので、2021/05 2022/08時点での最新という点に留意ください。
(追記 2022/08/23) バージョンアップを行いました。
- Elasticsearc:
7.10.1
→7.17.3
- SudachiDict:
sudachi-dictionary-20201223-core
→sudachi-dictionary-20220729-core
環境
- Elasticsearch:
7.17.3
- analysis-sudachi:
v2.1.0
- SudachiDict:
sudachi-dictionary-20220729-core
方法
$ git clone https://github.com/yagays/elasticsearch-sudachi
$ cd elasticsearch-sudachi
$ docker compose up --build
コード全体は以下のレポジトリにあります。
Dockerfileの解説
ここでは、必要となるDockerfileを抜粋して説明します。
FROM docker.elastic.co/elasticsearch/elasticsearch:7.17.3
RUN elasticsearch-plugin install https://github.com/WorksApplications/elasticsearch-sudachi/releases/download/v2.1.0/analysis-sudachi-7.17.3-2.1.0.zip
RUN curl -Lo sudachi-dictionary-20220729-core.zip http://sudachi.s3-website-ap-northeast-1.amazonaws.com/sudachidict/sudachi-dictionary-20220729-core.zip && \
unzip sudachi-dictionary-20220729-core.zip && \
mkdir -p /usr/share/elasticsearch/config/sudachi/ && \
mv sudachi-dictionary-20220729/system_core.dic /usr/share/elasticsearch/config/sudachi/ && \
rm -rf sudachi-dictionary-20220729-core.zip sudachi-dictionary-20220729/
COPY sudachi.json /usr/share/elasticsearch/config/sudachi/
まずElasticsearchが公式で配布しているコンテナイメージを利用します。次にelasticsearch-pluginを使ってanalysis-sudachiのプラグインのインストールします。一度ダウンロードしてから指定するコードもありましたが、現在はプラグインファイルのURLをそのまま渡すことができます。その後SudachiDictをダウンロードして配置します。以前はconohaでホストされていたようですが、現在ではAWSでホストされているため、URLもそれに応じて書き換えています(link)。また、辞書にはcore
,small
,full
の3種類があり、ここではcore
を利用しています。最後にsudachiの設定ファイルであるsudachi.json
をローカルからコピーします。この中で辞書ファイル名を指定しているので、前段でダウンロードした辞書名と統一させます。
差分
- Elasticsearchとanalysis-sudachiのバージョンアップ
- Elasticsearchのバージョンとanalysis-sudachiのバージョンを合わせる
- SudachiDictのURLが正しく、ダウンロードできるか
- ConoHa -> AWS に変更
- SudachiDict
- 設定ファイルのアップデート
-
mode
が廃止されsudachi_split
,split_mode
に変更
-
参考
- 公式
- 構築記事
Discussion