我最近开始从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)'"
答案 0 :(得分:0)
以下实现对我有用。
innerHit(new InnerHitBuilder())