之间有什么区别
“query”: “osversion=android”
和
“query”: “osversion:android”
我无法找到:
与=
的解释。
我得到了不同的结果。我们已经将Kibana从4.x更新到5.x并重新编制了索引。
在更新之前,我使用了:
,现在更新后我没有得到结果,我必须使用=
来获取结果。
查询:
{
"query": {
"bool": {
"must": [
{
"query_string": {
"analyze_wildcard": true,
"query": "product:PRODUCTNAME"
}
},
{
"range": {
"log_timestamp": {
"gte": 1512909497485,
"lte": 1515501497485,
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
},
"size": 0,
"_source": {
"excludes": []
},
"aggs": {
"3": {
"filters": {
"filters": {
"IOS": {
"query_string": {
"query": "osversion:ios",
"analyze_wildcard": true
}
},
"Android": {
"query_string": {
"query": "osversion:android",
"analyze_wildcard": true
}
}
}
},
"aggs": {
"1": {
"cardinality": {
"field": "uuid",
"precision_threshold": 1000
}
}
}
}
}
}
映射:
"osversion": {
"index": "not_analyzed",
"type": "keyword",
"doc_values": true
},
答案 0 :(得分:0)
您在Kibana搜索栏中输入的内容需要符合query_string
query syntax,即您的查询唯一正确的方法是使用:
,如
osversion:android
将检索osversion
个字段与android
匹配的所有文档。
相反,如果您输入
osversion=android
然后标准分析器启动并且查询将搜索在任何分析字段中具有osversion
或android
的所有文档,这是完全不同的。