LoginSignup
2

More than 1 year has passed since last update.

Elasticsearch-sudachi で sudachi.json をつかわずに設定を追加する

まとめ

Elasticsearch-sudachi で Sudachi の設定をかえたいとき、additional_settings をつかえば直接設定を追加できます。

従来の方法

辞書をデフォルトの system_core.dic 以外に切り替えたり、ユーザ辞書を追加したいとき、以前は Sudachi.json を用意して settings_path でファイルを指定する必要がありました。

{
  "settings": {
    "index": {
      "analysis": {
        "tokenizer": {
          "sudachi_tokenizer": {
            "type": "sudachi_tokenizer",
            "settings_path": "sudachi/sudachi.json"
          }
        },
        "analyzer": {
          "sudachi_analyzer": {
            "filter": [],
            "tokenizer": "sudachi_tokenizer",
            "type": "custom"
          }
        }
      }
    }
  }
}

設定が複数の箇所に分散するため非常にわずらわしく管理しづらい状況でした。

あたらしい方法

バージョン2.1.0から additional_settings をつかって直接 sudachi.json の内容を指定できるようになりました。

"tokenizer": {
  "sudachi_tokenizer": {
    "type": "sudachi_tokenizer",
    "additional_settings": "{\"systemDict\":\"system_full.dic\",\"userDict\":[\"user.dic\"]}"
  }
}

指定した JSON は Sudachi のコマンドラインの -s オプションをつかったときと同様に解釈されます。1

以前紹介した allowEmptyMorpheme もおなじように指定できます。

"tokenizer": {
  "sudachi_tokenizer": {
    "type": "sudachi_tokenizer",
    "additional_settings": "{\"systemDict\":\"system_full.dic\",\"allowEmptyMorpheme\":false}"
  }
}

JSONを文字列に押し込んでいるので若干かきづらいですが、余分なファイルをつくることなくすっきり管理できます。

ではよい Sudachi life を。


  1. デフォルトの設定ファイルに対して、重複する項目は上書き、ないものは追加。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2