我的文档映射:
...
"user.id": {
"type": "string",
"index": "not_analyzed"
},
...
索引的示例文档:
{ "user": { "id": "123" } }
使用以下查询:
"query" : {
"filtered" : {
"query" : {
"match_all" : { }
},
"filter" : {
"terms" : {
"user.id" : [ "123, foo" ]
}
}
}
我没有点击。
虽然只有“123”的术语过滤器成功匹配。
根据我在documentation中所阅读的内容,过滤条件应与所提供值的“任意”匹配。所以在我的情况下,“foo”与userId
不匹配,那么文档应该匹配,因为“123”匹配。
我是否误解了术语过滤器?
答案 0 :(得分:1)
您要将"123, foo"
作为单个字符串提交。您的集合中没有包含该用户ID的文档。如果您提交" 123"和" foo"作为单独的字符串,即"user.id" : [ "123", "foo" ]
,您的示例文档应与查询匹配。