【发布时间】:2014-11-01 11:09:47
【问题描述】:
我想知道如何查询字段以完全匹配字符串。
我实际上是在尝试这样查询:
url : "http://www.domain_name.com"
返回所有以http://www.domain_name.com开头的字符串。
【问题讨论】:
标签: regex lucene elasticsearch kibana
我想知道如何查询字段以完全匹配字符串。
我实际上是在尝试这样查询:
url : "http://www.domain_name.com"
返回所有以http://www.domain_name.com开头的字符串。
【问题讨论】:
标签: regex lucene elasticsearch kibana
我有一个类似的问题,我发现“.raw”修复了它 - 在你的例子中,试试
url.raw : "http://www.domain_name.com"
【讨论】:
只是让@dezhi 的评论更加可见。
in newer version of ES(5.x, 6.x),
you should use `url.keyword` instead,
as they have changed to a new keyword type.
因此,它会是:
url.keyword : "http://www.domain_name.com"
【讨论】:
现成不支持精确值。
开箱即用,Lucene 不提供精确的字段匹配,例如匹配“Acer Negundo Ab”,仅匹配“Acer Negundo Ab”(不包括“Acer Negundo Ab IgG”)。Lucene 也不提供“Starts With”或“Ends” With" 功能。幸运的是,有一些解决方法。
【讨论】:
"Cannot change the info of a user"
要搜索精确的字符串,您需要将字符串包装成双精度 引号。不带引号,示例中的搜索 将匹配包含以下单词之一的任何文档: “不能”或“更改”或“该”或“信息”或“一个”或“用户”。
Kibana v6.5
【讨论】:
根据您的查询,看起来不错。
为了匹配,语法如下:
fieldname : string
和
要匹配子字符串,请使用通配符 (*),
语法:
fieldname : *string*
此外,无论您应用什么查询;该查询是否是您的特定输出组件的Query Criteria 的一部分。
因此,我建议您检查是否在您的搜索中应用了 wild card。
【讨论】: