Elasticsearch构建大小写不敏感精确匹配索引时遇BadRequestError
问题解决:Elasticsearch自定义分析器配置错误
错误原因
你遇到的unknown setting错误,核心原因是自定义分析器的配置字段写错了——Elasticsearch要求自定义分析器中指定过滤器的字段是复数形式filters,而你写的是单数filter,导致集群无法识别这个配置项。
修正后的配置
把filter改成filters即可,修正后的完整配置如下:
settings = { "settings": { "analysis": { "analyzer": { "lower_analizer": { "tokenizer": "whitespace", "filters": ["lowercase"] # 改为复数形式filters } } } } } mappings = { "properties": { "title": {"type": "text", "analyzer": "standard"}, "article": {"type": "text", "analyzer": "lower_analizer"}, "sentence_id": {"type": "integer"}, } }
补充说明
你的配置思路完全正确:
- 用
whitespace分词器按空格分割文本,保证词级别的精确性 - 搭配
lowercase过滤器统一转小写,实现大小写不敏感匹配 - 搜索
article字段时,Elasticsearch会自动用指定的lower_analizer处理查询词,确保大小写不敏感的精确匹配逻辑生效
内容的提问来源于stack exchange,提问作者Realdeo
相关产品推荐
相关产品推荐

