如何通过精确值搜索elasticsearch字段,但不区分大小写查询? 例如,我有值为{“Type”的字段:“Płatnośćkartą”}, 我的查询将按值“płatnośćkartą”搜索。我需要能够通过字符串参数列表进行搜索(即“płatnośćkartą”,“płatnośćgotówką”等)。我尝试了弹性TERMS查询,但是当出现敏感案例差异时它没有返回值。字段索引设置为not_analyzed。
答案 0 :(得分:1)
如果在编制索引时选择not analyzed
,则Elastic不会在索引时分析这些术语,这意味着它们会逐字存储。因此,当您查询时,由于查询字词与存储的字段不匹配,因此无法获得结果。
为了能够使用小写查询并获得大写结果,您需要在映射上使用analyzer
。以下是docs的可用选项。
如果可用的分析仪都不适合您,您可以通过指定要应用的过滤器来定义自定义分析仪。例如,仅使用lowercase
过滤器,Elastic会将RegisteredPaymentType
字段编入索引。然后,在查询时,同一个分析器将应用于查询,您将获得期望的结果。