如何在查询响应中传递并返回大小

时间:2016-09-08 01:48:58

标签: elasticsearch

我有一个弹性搜索搜索查询,它以分页方式获取文档,如下所示:

{
    "from" : 5, "size" : 2,
    "sort" : [
        { "title" : {"order" : "asc"}}
    ],
    "query" : {
        "match_all": {}
    },
    "_source": ["title"]
}

我希望将fromsize返回到ES的响应中,该响应当前不会从上述查询返回。 任何指针都会非常有用。

1 个答案:

答案 0 :(得分:1)

ES当前未返回请求中已发送的分页参数。您需要破解它...或提交feature request

您可以使用named queries在几乎所有查询中传递该信息,但是,您需要等到ES match_all支持命名查询:

{
    "from" : 5, "size" : 2,
    "sort" : [
        { "title" : {"order" : "asc"}}
    ],
    "query" : {
        "match_all": {"_name": "5:2"}  <--- name the query with the from/size params
    },
    "_source": ["title"]
}

在回复中,您将获得"5:2",您可以将其解析为fromsize

  "hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
      {
        "_index": "test",
        "_type": "test",
        "_id": "1",
        "_score": 1,
        "_source": {
          "test": "test"
        },
        "matched_queries": [       <--- you can find from/size here
          "5:2"
        ]
      }
    ]
  }