我正在尝试创建一个过滤器,在我的弹性实例中按Id找到多个实体。
例如,我想找到包含ID为34,38和41的每个实体。
我的查询如下:
{
"query": {
"filtered": {
"filter": {
"term": {
"id":[34, 38, 41]
}
}
}
}
}
这只返回41实体而不是34,38和41.如何正确返回与列出的任何Id相匹配的结果?
答案 0 :(得分:1)
当您的意思是term
时,您正在使用terms
。这是ES 1.x中的一个错误。
{
"query": {
"filtered": {
"filter": {
"terms": {
"id": [34, 38, 41]
}
}
}
}
}
注意:在ES 2.x +中,此应:
{
"query": {
"bool": {
"filter": {
"terms": {
"id": [34, 38, 41]
}
}
}
}
}
唯一的变化是filtered
成为bool
。