Elasticsearch嵌套查询返回所有嵌套列表

Elasticsearch nested query is returned all the nested list

我的模型有一个嵌套字段 events 和一个字段 team_id。这些嵌套事件可能很大,我想对它做一些事情。

  1. Return 仅具有特定 team_id 的事件与下面的查询无关 returns 所有事件

  2. 使用inner_hits排序,限制大小和偏移量,也尝试通过发送sizefrom参数但没有成功

我在 Ruby

中使用 elasticsearch 5

https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-request-inner-hits.html#nested-inner-hits

Model.search(
        query: {
          bool:{
            must: [
              { match: { "_id":  "zzzzzzz" }},
              nested: {
                path: "events",
                query: {
                          match: { "events.team_id":  "sdlfjslasdfj" }
                },
                inner_hits: {}
              }
            ]
          }
        }
      )

使用 elasticsearch-api gem 让它工作 https://github.com/elastic/elasticsearch-ruby/tree/master/elasticsearch-api

response = client.search index: 'index_name',
                           body: {
                             "_source": false,
                              "query": {
                                "nested": {
                                  "path": "events",
                                  "query": {
                                    "bool": {
                                      "must":[
                                        {"match": {"events.team_id": "xyz"}},
                                        {"match": {"_id": "sdlfjslasdfj"}}
                                      ]
                                    }
                                   },
                                   "inner_hits": {
                                     "size": 10,
                                     "from": 0,
                                     "sort": [{ "events.starts_at": "asc" }]
                                   }
                                  }
                                }
                              }