【发布时间】:2017-11-25 10:11:35
【问题描述】:
我最近开始从 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"))
).innerHit(new QueryInnerHitBuilder())
我尝试让这个查询在 5.4 版中工作:
QueryBuilders.nestedQuery("classes.links",
QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("classes.links.name", "xyz")),
ScoreMode.Avg
).innerHit(new InnerHitBuilder()) //Error here
按照Elastic Search - java api for inner hit 的建议,我尝试将 QueryInnerHitBuilder() 替换为 InnerHitBuilder(),但它仍然不起作用。我收到以下错误:
“无法解析方法'innerHit(org.elasticsearch.index.query.InnerHitBuilder)'”
【问题讨论】:
-
您的问题最终解决了吗?如果您提供答案,它将对其他人有所帮助。
标签: elasticsearch elasticsearch-5 elasticsearch-java-api