I need to ensure that my suggestions come from documents with a particular join field. I can create a term query:
QueryBuilder typeFilter = QueryBuilders.termQuery("joinField", "foo");
And I can run a search with suggestbuilder:
SuggestBuilder suggestBuilder = new SuggestBuilder();
suggestBuilder.addSuggestion("fieldname", SuggestBuilders
.phraseSuggestion("fieldname")
.text(searchTerm)
.size(10));
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder()
sourceBuilder.suggest(suggestBuilder);
SearchRequest searchRequest = new SearchRequest("MyIndex")
searchRequest.source(sourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
But I can't see how to get suggestions only from documents returned by the termQuery.
NB "client" here is a RestHighLevelClient. I am using spring-data-elastic-search:4.1.5. NativeSearchQueryBuilder.withSuggestBuilder is not available to me because that was introduced in 4.3 and I am not able to upgrade