Elasticsearch6.3に日本語analyzerをインストール
前回まででelasticとkibanaのインストールは終わったので、analyzerを入れていきます。 入れるのは以下の3つ
- kuromoji 基本的な日本語の形態素解析器
- analysis-icu 国際的に規約されてる文字の解析器
- kuromoji-neologd kuromojiより流行りの固有名詞の辞書がとかが充実してる形態素解析
個人的な所感としては上記の3つを入れておけば充分かと思ってます。
Analyzerの説明をざっくりと。
elasticsearchはデータを登録・検索するときに以下の処理をAnalyzerを通して順番に行います。
- char filterによる文字列の正規化
- tokenizerによる文字列の形態素分割
- token filterによる分割された単語に対する処理
最終的に分割された単語に対して、検索ワードと、入稿されてるデータが一致するかしないかでelasticsearchは検索を行っています。
この辺の設定はindexのフィールド単位で行えるんですが、詳しい説明は割愛。
とりあえずanalyzerを以下のコマンドでインストール。
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji $ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu $ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install org.codelibs:elasticsearch-analysis-kuromoji-neologd:6.3.1
※neologd:6.3.0だとエラーになるようです。
- elasticsearch再起動
$ sudo -i service elasticsearch start
- 確認
$ curl -XGET localhost:9200/_nodes/plugins?pretty
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "plugins" : [ { "name" : "analysis-icu", "version" : "6.3.2", "elasticsearch_version" : "6.3.2", "java_version" : "1.8", "description" : "The ICU Analysis plugin integrates Lucene ICU module into elasticsearch, adding ICU relates anal ysis components.", "classname" : "org.elasticsear00 1ch.plugin.analysis.icu.AnalysisICUPlugin", "extended_plugins" : [ ], "has_native_controller" : false }, { "name" : "analysis-kuromoji", "version" : "6.3.2", "elasticsearch_version" : "6.3.2", "java_version" : "1.8", "description" : "The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into elastics earch.", "classname" : "org.elasticsearch.plugin.analysis.kuromoji.AnalysisKuromojiPlugin", "extended_plugins" : [ ], :2481 100 12481 0 0 580k 0 --:--:-- --:--:-- --:--:-- 580k "has_native_controller" : false }, { "name" : "analysis-kuromoji-neologd", "version" : "6.3.1", "elasticsearch_version" : "6.3.2", "java_version" : "1.8", "description" : "Kuromoji with Neologd analysis support", "classname" : "org.codelibs.elasticsearch.kuromoji.neologd.KuromojiNeologdPlugin", "extended_plugins" : [ ], "has_native_controller" : false } ],
ちゃんとインストールできてますね。 次は実際にmappingを定義して、データを登録してみます。