Elasticsearch Java API 5.4 - 如何获取嵌套查询的内部命中?

时间:2017-06-22 08:30:56

标签: elasticsearch elasticsearch-5 elasticsearch-java-api

我最近开始从Elasticsearch版本2.4迁移到版本5.4。在版本2.4中,我使用官方Java API实现了一些嵌套查询(包括内部命中),这些查询不再适用于5.4版本。

有谁能告诉我,如何使用Elasticsearch Java API 5.4获取嵌套查询的内部命中? 不幸的是,我无法找到有关此主题的任何资料,甚至在Elasticsearch文档中也没有。

我在2.4版中运行的嵌套查询:

QueryBuilders.nestedQuery("classes.links",
    QueryBuilders.boolQuery()
        .must(QueryBuilders.termQuery("classes.links.name", "xyz")), 
    ScoreMode.Avg
).innerHit(new InnerHitBuilder()) //Error here

我尝试让此查询在5.4版中运行:

{{1}}

正如docs所建议的那样,我尝试用 InnerHitBuilder()替换 QueryInnerHitBuilder(),但它仍然不起作用。我收到了以下错误:

"无法解析方法' innerHit(org.elasticsearch.index.query.InnerHitBuilder)'"

1 个答案:

答案 0 :(得分:0)

以下实现对我有用。

innerHit(new InnerHitBuilder())