Elasticsearch

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