我有一系列带有字段App Version
的记录,目前有两个可能的值:2.3.0
和2.3.0 SP1
。如果我尝试在开发者控制台中仅查询2.3.0
,就像这样...
GET myindex/_search
{
"query": {
"match": {
"App Version": "2.3.0"
}
}
}
它会返回所有记录,包括2.3.0 SP1
和的2.3.0
记录。由于我的最终目标是仅使用App Version=2.3.0
删除所有记录,因此我需要一些方法来过滤掉包含SP1
的记录。我无法在任何地方找到强制完全匹配整个字符串的文档,而不仅仅是字符串的一部分。有什么想法吗?
编辑:如果有帮助,我正在运行Kibana 5.2.2。
答案 0 :(得分:1)
对于完全匹配,您应在非分析字段(ES 2.X)或关键字字段(ES 5.X)上使用术语查询。但我想你必须改变映射。
我可以选择在bool
query中合并两个或多个查询:
{
"query": {
"bool": {
"must": [
{
"match": {
"App Version": "2.3.0"
}
}
],
"must_not": [
{
"match": {
"App Version": "SP1"
}
}
]
}
}
}