繁体   English   中英

Elasticsearch搜索不区分大小写的字段的确切值

[英]Elasticsearch searching exact value of field with case insensitive

如何在Elasticsearch字段中按其确切值但不区分大小写的查询进行搜索? 例如,我有一个值为{“ Type”:“Płatnośćkartą”}的字段,我的查询将按值“płatnośćkartą”搜索。 我需要能够按字符串参数列表进行搜索(例如“płatnośćkartą”,“płatnośćgotówką”等)。 我尝试了弹性TERMS查询,但是当出现区分大小写的差异时,它没有返回值。 字段索引设置为not_analyzed。

如果选择在索引时not analyzed ,则Elastic不会在索引时分析这些术语,这意味着它们是逐字存储的。 因此,当您进行查询时,由于查询词与存储的字段不匹配,因此无法获得任何结果。

为了能够以小写查询并获得大写结果,您还需要在映射上使用analyzer 这是docs中可用的选项。

如果没有可用的分析器适合您,则可以通过指定要应用的过滤器来定义自定义分析器。 例如,仅使用小lowercase滤器,Elastic会将刚刚小写的RegisteredPaymentType字段编入索引。 然后,在查询时,同一分析器将应用于查询,您将获得预期的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM