AWS Elasticsearch创建含分析器与分片的索引报错求助
解决Elasticsearch创建索引时的"unknown key [analysis]"错误
你遇到的问题根源很清晰——analysis配置的位置放错了!Elasticsearch要求所有分析相关的配置(包括normalizer、analyzer等)必须嵌套在settings对象内部,而不是和settings、mappings平级。你之前把analysis放在了根层级,这就触发了解析错误。
修正后的完整创建索引代码
{ "settings": { "number_of_shards": 2, "number_of_replicas": 1, "analysis": { "normalizer": { "my_normalizer": { "type": "custom", "char_filter": [], "filter": ["lowercase", "asciifolding"] } } } }, "mappings": { "properties": { "question": { "type": "text", "fields": { "keyword": { "type": "keyword" }, "normalize": { "type": "keyword", "normalizer": "my_normalizer" } } } } } }
关键调整说明
- 把原来根层级的
analysis块移动到了settings对象内部,这是完全符合Elasticsearch索引创建规范的正确结构 - 完整保留了你原本想要的所有配置:2分片1副本的集群设置、自定义的
my_normalizer归一器,以及question字段的text/keyword/归一化keyword多字段映射
你可以把这段修正后的JSON提交给AWS ES服务,应该就能成功创建索引了。如果担心AWS环境的兼容性,也可以先在本地Elasticsearch实例验证配置结构,再同步到云端,避免重复踩坑~
内容的提问来源于stack exchange,提问作者Ankit Kumar
相关产品推荐
相关产品推荐

