📚

OpenSearchでsudachi_full.dicを使ってみた

2024/04/20に公開

2023年に言語アナライザーのsudachiがOpenSearchでサポートされました。
これまで日本語のアナライザーはkuromojiしかサポートされていなかったのですが、
今回サポートされたということで業務で使っているアナライザーをsudachiに乗り換えました。

また辞書はfull_dictionaryを使用してます。
設定方法はElasticsearchと大体同じですが、多少違う部分もあったので備忘録としてまとめます。
参考になる部分があると幸いです。

sudachi_full.dicをダウンロードする

こちらからダウンロードできます。
http://sudachi.s3-website-ap-northeast-1.amazonaws.com/sudachidict/

辞書をOpenSearchのドメインに紐づける

まずはS3にダウンロードした辞書をアップロードします。
次にOpenSearchのページからS3にアップロードした辞書をインポートします。

インポートが完了したらドメインに関連付けます。


また、次にindexを作成する際にパッケージIDが必要になるので控えておきます。

indexを作成する

OpenSearch DashboardsのDev Toolsからindexを作成していきます。
additional_settingsプロパティに先程控えておいたパッケージIDを記述します。

PUT /sudachi_sample
{
  "settings": {
    "analysis": {
      "tokenizer": {
        "sudachi_full_tokenizer": {
          "type": "sudachi_tokenizer",
          "additional_settings": "{\"systemDict\":\"F123456789\"}"
        }
      },
      "analyzer": {
        "sudachi_full_analyzer": {
          "tokenizer": "sudachi_full_tokenizer"
        }
      }
    }
  }
}

では実際に形態素解析してみます。

// request
POST sudachi_sample/_analyze
{
  "text": "東急新横浜線",
  "analyzer": "sudachi_full_analyzer"
}

// response
{
  "tokens": [
    {
      "token": "東急新横浜線",
      "start_offset": 0,
      "end_offset": 9,
      "type": "word",
      "position": 0
    }
  ]
}

参考

https://github.com/WorksApplications/SudachiDict
https://aws.amazon.com/jp/blogs/psa/amazon-opensearch-service-sudachi-plugin/

Discussion