Help us understand the problem. What is going on with this article?

elasticsearch-sudachi で sudachi.json や system_full.dic が読み込まれない場合の対処法

More than 1 year has passed since last update.

elasticsearch-sudachi をインストールしてインデックスを作る際に以下のように指定しますが、

curl -X PUT 'localhost:9200/shop' -H 'Content-Type: application/json' -d'
{
    "settings": {
        "index": {
            "analysis": {
                "tokenizer": {
                    "sudachi_tokenizer": {
                        "type": "sudachi_tokenizer",
                        "mode": "search",
                "discard_punctuation": true,
                        "resources_path": "/****/elasticsearch-5.6.1/sudachi",
                        "settings_path": "/****/elasticsearch-5.6.1/sudachi/sudachi.json"
                    }
                },
                "analyzer": {
                    "sudachi_analyzer": {
                        "filter": [
                        ],
                        "tokenizer": "sudachi_tokenizer",
                        "type": "custom"
                    }
                }
            }
        }
    }
}'

アクセス権の問題で動作しない場合があります。

{
  "error": {
    "root_cause": [
      {
        "type": "access_control_exception",
        "reason": "access denied (\"java.io.FilePermission\" \"/****/elasticsearch-5.6.1/sudachi/sudachi.json\" \"read\")"
      }
    ],
    "type": "access_control_exception",
    "reason": "access denied (\"java.io.FilePermission\" \"/****/elasticsearch-5.6.1/sudachi/sudachi.json\" \"read\")"
  },
  "status": 500
}

このような場合は config フォルダの直下に sudachi.json と system_full.dic を置いて実行すると、正常にインデックスが作成されて解析することができます。

事象が発生した状況(2018.4.17 更新)

この事象は Elasticsearch を tar からインストールした場合に発生し、パッケージからインストールした場合は発生しませんでした。

参考になった記事

500 Error: Synonym file can’t be read

nettle0010
I'm a software engineer. Python3/Embulk/Digdag/Presto/Hive/Elasticsearch
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away