【问题标题】:Elasticsearch Java API 5.4 - How to get the inner hits of a nested query?Elasticsearch Java API 5.4 - 如何获得嵌套查询的内部命中?
【发布时间】: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


【解决方案1】:

以下实现对我有用。

innerHit(new InnerHitBuilder())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 2015-12-26
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多