在索引中,我插入了字段而未更改值的大小写(大写或小写),例如在我的Elasticsearch文档中,字段name
包含值Hello World
。我已经将name
字段作为not_analyzed
进行了完全匹配。但是在那种情况下,当我通过hello world
搜索时,elasticsearch没有返回此文档,可能是由于区分大小写。我已经尝试过使用term query
和match query
,但是没有找到运气。
如果可以的话,请提出建议。
谢谢
最佳答案
在Elasticsearch中执行此操作的唯一方法是分析字段并使用 token 过滤器。您可以使用一个小写的 token 过滤器,但这实际上不能像SQL那样即时完成,您可以使用LOWER()之类的方法包装要查询的字段。
为了获得您想要的效果,我将使用Keyword tokenizer和Lowercase token filter之类的东西。如果您将此分析器设置为用于索引和搜索的默认分析器,那么您的搜索也将不区分大小写。
关于elasticsearch - 通过忽略值大小写检查搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24360457/