我想知道如何查询字段以精确匹配字符串。我实际上是这样尝试查询的:
url : "http://www.domain_name.com"
返回所有以http://www.domain_name.com开头的字符串。
http://www.domain_name.com
ar7v8xwq1#
我也遇到过类似的问题,如果发现.raw解决了这个问题-在您的示例中,请尝试
url.raw : "http://www.domain_name.com"
mpgws1up2#
只是让@德智的评论更有能见度。
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"
1wnzp6jl3#
不支持现成的精确值。http://blogs.perl.org/users/mark_leighton_fisher/2012/01/stupid-lucene-tricks-exact-match-starts-with-ends-with.htmlLucene不提供精确的字段匹配,例如只匹配“Acer Negundo Ab”和“Acer Negundo Ab”(不包括“Acer Negundo Ab IgG”)。Lucene也不提供“开头为”或“结尾为”功能。幸运的是,有一些变通办法。
ehxuflar4#
"Cannot change the info of a user"
若要搜索精确的字符串,需要将字符串括在双引号中。如果不使用引号,示例中的搜索将匹配包含以下单词之一的任何文档:“无法”OR“更改”OR“的”OR“信息”OR“的”OR“用户”。Kibana 6.5版
83qze16e5#
根据你的查询,它似乎很好。以下是精确匹配的语法:fieldname : *string*和对于matchign子字符串,使用通配符(*)、语法:fieldname : *string*个此外,无论您应用了什么查询;查询是特定输出组件的Query Criteria的一部分。因此,我建议您检查是否有任何wild card应用在您的搜索。
fieldname : *string*
Query Criteria
wild card
5条答案
按热度按时间ar7v8xwq1#
我也遇到过类似的问题,如果发现.raw解决了这个问题-在您的示例中,请尝试
mpgws1up2#
只是让@德智的评论更有能见度。
因此,它将是:
1wnzp6jl3#
不支持现成的精确值。
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”(不包括“Acer Negundo Ab IgG”)。Lucene也不提供“开头为”或“结尾为”功能。幸运的是,有一些变通办法。
ehxuflar4#
若要搜索精确的字符串,需要将字符串括在双引号中。如果不使用引号,示例中的搜索将匹配包含以下单词之一的任何文档:“无法”OR“更改”OR“的”OR“信息”OR“的”OR“用户”。
Kibana 6.5版
83qze16e5#
根据你的查询,它似乎很好。
以下是精确匹配的语法:
fieldname : *string*
和
对于matchign子字符串,使用通配符(*)、
语法:
fieldname : *string*
个此外,无论您应用了什么查询;查询是特定输出组件的
Query Criteria
的一部分。因此,我建议您检查是否有任何
wild card
应用在您的搜索。