在查询的根级别是否支持内部命中?

yfwxisqw  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(397)

我尝试使用elasticsearchoperations来编写这样一个查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "dialogLines",
            "query": {
              "match_phrase": {
                "dialogLines.text": {
                  "query": "No problem"
                }
              }
            }
          }
        }
      ]
    }
  },
  "collapse": {
    "field": "movieId",
    "inner_hits" : {
        "name": "by_movie",
        "collapse" : {"field" : "boundaryGroup"},
        "sort": [{ "boundaryStartInMillis": "desc" }],
        "size": 6
    }
  }
}

我知道 NestedQuery 支架 innerHit(InnerHitBuilder innerHitBuilder) ,但类型为的根级查询 NativeSearchQuery 没有那种方法。
有没有一种方法可以使用elasticsearchoperations编写这个查询?
我的版本是 org.springframework.data:spring-data-elasticsearch:3.2.9.RELEASE 运行elasticsearch v6.8.2

e37o9pze

e37o9pze1#

使用创建查询时 NativeSearchQuery ,您通常使用

Query query = new NativeSearchQueryBuilder()
  .withQuery(queryBuilder)
  .build();

这个 queryBuilder 参数是 org.elasticsearch.index.query.QueryBuilder ,因此您可以使用任何您喜欢的elasticsearch查询生成器。
编辑:2020年9月29日: NativeSsearchQuery 支持具有 NativeSearchQueryBuilder.withCollapseField(String) 方法。但目前还不支持崩塌场的内部打击。我创造了https://jira.spring.io/browse/dataes-939 为了解决这个问题。

相关问题