はじめに
Elasticsearchにおけるアナライザーで、単語がどのように分割しているか調べるときどうしてますか?
以前はKibanaのコンソール経由でリクエストし調査していたのですが、限界を感じたので今回はAnalyze UIというプラグインを入れて直感的に操作したいと思います。
環境
OS:Amazon Linux 2
Elasticsearch7.5.0
Kibana7.5.0
プラグイン
今回インストールするKibanaのプラグインです。たまにバージョンが飛んでいるのでご注意ください。
https://github.com/johtani/analyze-api-ui-plugin/
インストール
コマンドでインストール
Kinabaがあるサーバにインストールします。
$ sudo /usr/share/kibana/bin/kibana-plugin --allow-root install https://github.com/johtani/analyze-api-ui-plugin/releases/download/7.5.0/analyze_api_ui-7.5.0.zip
インストールディレクトリ確認
OSによってインストール先が違いますが、インストール先を見てみます。
$ ls -tlr /usr/share/kibana/plugins
Kibanaリスタート
リスタートしないと読み込んでくれないので注意
$ sudo systemctl restart kibana.service
プラグイン一覧確認
$ sudo /usr/share/kibana/bin/kibana-plugin --allow-root list
analyze_api_ui@7.5.0
Kibanaにアクセス
ブラウザでKibanaを見てみます。
http://(Kibana URI)/app/analyze_api_ui
使ってみる
あとはUIに従って使ってみるのみです。タブメニューの紹介だけしておきます。
Analyzer:アナライザー名を指定して調査できます。
Custom Analyzer:char_filter/tokenizer/filter名を指定して組み合わせを調整できます。これから新しく作るアナライザーに便利です。
Field:インデックスマッピングのフィールド名を指定してアナライザーが調査できます。
Compare Analyzers:アナライザー名を複数指定して結果を見るときに便利そうです。
さいごに
今までなんとなくだったchar_filter/tokenizer/filterが、どのように機能しているかを理解し一歩も二歩も距離が短くなった気がします。
アナライザーの見直しにもとても役立ちました。
他にも良いプラグインがあれば、導入していきたいです。