在我的索引中,我插入字段而不更改值的大小写(大写或小写),就像在我的elasticsearch文档中,字段name
包含值Hello World
。我已将name
字段设为not_analyzed
以进行完全匹配。但在这种情况下,当我通过hello world
搜索此文档时,弹性搜索不会返回,可能是由于区分大小写。我尝试使用term query
和match query
,但没有找到运气。
如果有办法,请建议。
感谢
答案 0 :(得分:2)
在Elasticsearch中执行此操作的唯一方法是分析字段并使用令牌过滤器。有一个小写的令牌过滤器可供您使用,但这实际上可以像SQL一样动态完成,在这里你可以用LOWER()来包装要查询的字段。
为了获得您想要的效果,我会使用Keyword tokenizer和Lowercase token filter之类的内容。如果您将此分析器设置为索引和搜索的默认分析器,那么您的搜索也将不区分大小写。