如果elasticsearch-sudachi无法加载sudachi.json或system_full.dic,可以采取以下对策
在安装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
}
在这种情况下,将sudachi.json和system_full.dic这两个文件放在config文件夹的根目录下并执行,就可以成功创建索引并进行解析。
发生了一些事情(2018.4.17 更新)
如果是从tar文件安装Elasticsearch时,将会发生这种情况,而从包里安装则不会发生。
有用的文章參考
500错误:无法读取同义词文件