如何在 kibana 中将"wildcard"与多字符串查询一起使用?



我正在尝试运行以下查询:

{">

通配符:"{"terminalId":70}} AND tranSactionResponseCode:1

上述查询抛出并出错:无法解析查询。

但是当我运行上述查询时:{"通配符:"{"terminalId":70}} 或者当我只运行 AND 条件时:传输操作响应代码:1 它成功运行。 请帮助我弄清楚如何在一个查询中使用这两个条件。

我假设您的terminalIdtext类型。

您可以根据使用情况尝试以下两个查询。第一个只能使用bool查询。

GET mytestindex/_search
{
"query": { 
"bool": { 
"must": [
{ "wildcard": { "terminalId":   "70*"        }}, 
{ "match": { "tranSactionResponseCode": "1" }}  
]
}
}
}

其次,根据我的理解,您似乎希望根据事务代码过滤文档。在这种情况下,为了获得更好的查询性能,您可以使用以下查询,该查询使用boolfilter。请注意,我在此处使用wildcard作为查询上下文。

GET mytestindex/_search
{
"query": { 
"bool": { 
"must": [
{ "wildcard": { "terminalId":   "70*" }       
} 
],
"filter": [ 
{ "term":  { "tranSactionResponseCode": "2" }}
]
}
}
}

执行两个查询时请检查分数。第二个选项不会考虑tranSactionResponseCode计算其score

希望对您有所帮助!

最新更新