Grafana lucene 查询: fields.someFieldname = xxx 和 fields.someFieldname 之间的区别:xxx
Grafana lucene query: Difference between fields.someFieldname = xxx and fields.someFieldname: xxx
我正在编写一个 Grafana lucene 查询,并且在绘制 fields.statusCode = xxx 和 fields.statusCode: xxx 时
我得到两个不同的总数,第一个 fx 是 1200 而第二个是 24.
凭直觉我猜第一个更具体,但它给出的总数更高。
':' 和 '=' 有什么区别?
更新 提供截图
这是使用“:”
的屏幕截图
这是使用“=”的截图
如您所见,唯一改变的是 : vs = .
我把图片的某些部分划掉了(这不影响问题)。
查询中的第一个外标就是 url.
在 Lucene 查询中,要使用的正确运算符是 :
而不是 =
,因此产生 24 个结果的 fields.statusCode:xxx
是正确的方法。
可以在 Lucene query parser syntax 文档中找到更多信息。
无论您在 Grafana 的 Query
字段中写入什么,最终都会出现在下面的 query_string
中:
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"gte": "1571221609944",
"lte": "1571223409944",
"format": "epoch_millis"
}
}
},
{
"query_string": {
"analyze_wildcard": true,
"query": "fields.requestPath:\"bla bla bla\" AND XYZ AND method:POST"
}
}
]
}
},
"aggs": {
...
}
}
正如您在 query_string
query syntax 中看到的(在语义上等同于我上面分享的那个),:
是您需要用来分隔字段名称和值的字符。
我正在编写一个 Grafana lucene 查询,并且在绘制 fields.statusCode = xxx 和 fields.statusCode: xxx 时 我得到两个不同的总数,第一个 fx 是 1200 而第二个是 24.
凭直觉我猜第一个更具体,但它给出的总数更高。
':' 和 '=' 有什么区别?
更新 提供截图 这是使用“:”
的屏幕截图这是使用“=”的截图
如您所见,唯一改变的是 : vs = .
我把图片的某些部分划掉了(这不影响问题)。
查询中的第一个外标就是 url.
在 Lucene 查询中,要使用的正确运算符是 :
而不是 =
,因此产生 24 个结果的 fields.statusCode:xxx
是正确的方法。
可以在 Lucene query parser syntax 文档中找到更多信息。
无论您在 Grafana 的 Query
字段中写入什么,最终都会出现在下面的 query_string
中:
{
"size": 0,
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"gte": "1571221609944",
"lte": "1571223409944",
"format": "epoch_millis"
}
}
},
{
"query_string": {
"analyze_wildcard": true,
"query": "fields.requestPath:\"bla bla bla\" AND XYZ AND method:POST"
}
}
]
}
},
"aggs": {
...
}
}
正如您在 query_string
query syntax 中看到的(在语义上等同于我上面分享的那个),:
是您需要用来分隔字段名称和值的字符。