我想在弹性搜索中找到具有给定ID的某些元素,但我无法想出一个简单的方法。
我看到http://www.elasticsearch.org/guide/reference/query-dsl/ids-query/但是在我的生活中无法弄清楚如何构建查询以使用它,或者当我用es-head或curl玩玩具时我看到的错误如下:
Parse Failure [Failed to parse source [{"query":{"match_all":{}},"ids
{"values""1","4","100"]}}]]]; nested: SearchParseException[[dailyaggregates][4]:
query[ConstantScore(NotDeleted(*:*))],from[-1],size[-1]: Parse Failure [No parser for
element [ids]]]; }]
等。谁能告诉我如何设置它?感谢。
编辑:我对这个错误的尝试是来自es-head但是通过卷曲的类似错误。我相信我尝试的是一些变体:
{
"query": {
"match_all": {}
},
"ids": {
"values": [
"100"
]
}
}
答案 0 :(得分:18)
ids
是一种查询,就像match
或match_all
一样。格式应该是:
{"query":{ "ids":{ "values": [ 100 ] } } }
您也可以将其作为过滤器执行,如下所示:
{"filter":{ "query": {"ids":{ "values": [ 100 ] } } } }