12

我想在我的弹性搜索中找到具有给定 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,但通过 curl 出现了类似的错误。我相信我尝试的是这个的一些变体:

{
   "query": {
   "match_all": {}
   },
  "ids": {
    "values": [
     "100"
    ]
  }
}
4

1 回答 1

31

ids是一种查询,就像match, 或match_all. 所以格式应该是:

{"query":{ "ids":{ "values": [ 100 ] } } }

您也可以将其用作过滤器,如下所示:

{"filter":{ "query": {"ids":{ "values": [ 100 ] } } } }
于 2013-05-16T01:31:55.363 回答