使用elasticdump导入Elasticsearch analyzer配置返回405错误如何解决
问题排查与解决方案
错误根因
你遇到的405报错是因为analyzer属于Elasticsearch的索引级别配置,不能直接向Elasticsearch集群根路径发起PUT请求,必须指定配置所属的具体索引。
修复步骤
- 修正elasticdump执行命令,在输出的ES地址后追加配置对应的索引名
athena:
elasticdump --input=./athena-analyzer.json --output=http://localhost:9200/athena --type=analyzer
- 提前校验环境配置,避免后续报错:
- 若
athena索引尚未创建,先执行命令创建空索引:curl -X PUT http://localhost:9200/athena - 检查本地
athena-analyzer.json文件格式是否正确:你当前提供的JSON外层包裹了多余的双引号和转义符,需要删除外层冗余引号,保证文件内是标准JSON结构,根节点直接为{"athena": {...}} - 若
athena索引已存在且存储了数据,修改analyzer配置需要先关闭索引,配置导入完成后再打开:
关闭索引命令:curl -X POST http://localhost:9200/athena/_close
导入完成后打开索引命令:curl -X POST http://localhost:9200/athena/_open
- 若
配置生效验证
导入完成后可执行以下命令校验analyzer是否正常工作:
curl -X POST "http://localhost:9200/athena/_analyze?pretty" -H 'Content-Type: application/json' -d' { "analyzer": "autocomplete_analyzer", "text": "123 main st" }'
查看返回结果中是否将st替换为street,确认同义词等自定义配置生效即可。
内容的提问来源于stack exchange,提问作者rameezmeans
相关产品推荐
相关产品推荐

