Elasticsearch 8.9中lowercase_expanded_terms的替代方案是什么?
Elasticsearch 8.9中query_string不支持lowercase_expanded_terms参数的问题处理
lowercase_expanded_terms参数在Elasticsearch 2.x版本中可以正常使用,但升级到8.9版本后,包含该参数的query_string查询会触发报错:
"reason": "[query_string] query does not support [lowercase_expanded_terms]"
报错的查询示例如下:
{ "size": 1000, "query": { "bool": { "must": [ { "query_string": { "query": "*TEST*", "fields": [ "elastic*" ], "lowercase_expanded_terms": false // query does not support } } ] } } }
问题原因与解决办法
这个参数早在Elasticsearch 5.x版本就已被废弃,到8.x系列版本直接彻底移除了对它的支持。如果需要保留原有的大小写匹配逻辑,可采用以下两种方案:
- 调整字段配置:将目标字段设置为
keyword类型(不分词,完全保留原始大小写),或者自定义分词器时关闭小写转换功能,确保索引内容与查询的大小写规则一致。 - 修改查询语句:如果是通配符查询,直接在
query字段中写入对应大小写的内容(比如示例中的*TEST*),只要字段索引为大小写敏感状态,就能精准匹配包含大写TEST的文档。
内容的提问来源于stack exchange,提问作者Ajay Takur
相关产品推荐
相关产品推荐

