Elasticsearch API:SearchQuery和SearchResponse之间的区别?

时间:2015-08-17 08:59:10

标签: elasticsearch spring-data-elasticsearch

在我的Spring-Data-Elasticsearch应用程序中,我试图使用SearchQuery来搜索Elasticsearch,根据一些给定的QueryBuilder和FilterBuilder。

然而,Elasticsearch docs talk about SearchResponse,对我来说,似乎与SearchQuery做同样的工作。

我不明白SearchQuery和SearchResponse之间的区别。 有人可以指出区别吗?

2 个答案:

答案 0 :(得分:1)

如果将查询对象传递给elasticsearch客户端并执行查询,则会收到回复。 响应类型取决于查询类型。

a: [0, 1, 2]
b: [3, 4, 5]

依旧......

在链接的代码段中,使用prepareSearch方法构建SearchQuery对象。然后由客户执行。

executed SearchQuery object -> SearchResponse object
executed IndexQuery object -> IndexResponse object

答案 1 :(得分:1)

搜索查询是您发送给Elastic的查询,搜索响应是Elasticsearch对该查询的响应。

例如,这可能是您的查询:

POST /your_index/_search
{
  "query": {
    "term": {
      "available": {
        "value": true
      }
    }
  }

来自ES的可能的查询响应:

{
   "took": 99,
   "timed_out": false,
   "_shards": {
      "total": 1,
      "successful": 1,
      "failed": 0
   },
   "hits": {
      "total": 58188,
      "max_score": 0.99998283,
      "hits": [
         ...
      ]
   }
}