Kibana查询完全匹配

时间:2014-09-08 09:09:08

标签: regex lucene elasticsearch kibana

我想知道如何查询字段以完全匹配字符串。

我实际上是想这样查询:

url : "http://www.domain_name.com"

返回以http://www.domain_name.com开头的所有字符串。

5 个答案:

答案 0 :(得分:44)

我遇到了类似的问题,而且#34; .raw"修复它 - 在你的例子中,尝试

url.raw : "http://www.domain_name.com"

答案 1 :(得分:11)

让我们更加了解@ 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"

答案 2 :(得分:6)

开箱即用不支持精确值。

http://blogs.perl.org/users/mark_leighton_fisher/2012/01/stupid-lucene-tricks-exact-match-starts-with-ends-with.html

  

开箱即用,Lucene不提供精确的场地匹配,例如匹配" Acer Negundo Ab"并且只有" Acer Negundo Ab" (不是"宏碁   Negundo Ab IgG" )。 Lucene也没有提供" Starts With"或者"结束   与"功能。幸运的是,有一些解决方法。

答案 3 :(得分:0)

“无法更改用户信息”

要搜索确切的字符串,需要将字符串用双引号引起来。在不带引号的情况下,示例中的搜索将匹配包含以下单词之一的任何文档:“不能”或“更改”或“该”或“信息”或“一个”或“用户”。

Kibana v6.5

答案 4 :(得分:-7)

按照你的查询,看起来很好。

为了匹配,以下是语法:

fieldname : string

为了匹配子串,请使用通配符(*),

语法:

fieldname : *string*

此外,无论您使用何种查询;该查询是您的特定输出组件Query Criteria的一部分。

因此,我建议您检查是否在搜索中应用了wild card