Недавно я начал переходить с 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 для внутреннего попадания, я попытался заменить QueryInnerHitBuilder() на InnerHitBuilder(), но это все равно не работает. Я получаю следующую ошибку:
"Не удается разрешить метод 'innerHit(org.elasticsearch.index.query.InnerHitBuilder)'"