public static void assertSuggestion(Suggest searchSuggest, int entry, int ord, String key, String text) { assertThat(searchSuggest, notNullValue()); String msg = "Suggest result: " + searchSuggest.toString(); assertThat(msg, searchSuggest.size(), greaterThanOrEqualTo(1)); assertThat(msg, searchSuggest.getSuggestion(key).getName(), equalTo(key)); assertThat(msg, searchSuggest.getSuggestion(key).getEntries().size(), greaterThanOrEqualTo(entry)); assertThat(msg, searchSuggest.getSuggestion(key).getEntries().get(entry).getOptions().size(), greaterThan(ord)); assertThat(msg, searchSuggest.getSuggestion(key).getEntries().get(entry).getOptions().get(ord).getText().string(), equalTo(text)); assertVersionSerializable(searchSuggest); }
public static void assertSuggestionSize(Suggest searchSuggest, int entry, int size, String key) { assertThat(searchSuggest, notNullValue()); String msg = "Suggest result: " + searchSuggest.toString(); assertThat(msg, searchSuggest.size(), greaterThanOrEqualTo(1)); assertThat(msg, searchSuggest.getSuggestion(key).getName(), equalTo(key)); assertThat(msg, searchSuggest.getSuggestion(key).getEntries().size(), greaterThanOrEqualTo(entry)); assertThat(msg, searchSuggest.getSuggestion(key).getEntries().get(entry).getOptions().size(), equalTo(size)); assertVersionSerializable(searchSuggest); }
public static void assertSuggestionPhraseCollateMatchExists(Suggest searchSuggest, String key, int numberOfPhraseExists) { int counter = 0; assertThat(searchSuggest, notNullValue()); String msg = "Suggest result: " + searchSuggest.toString(); assertThat(msg, searchSuggest.size(), greaterThanOrEqualTo(1)); assertThat(msg, searchSuggest.getSuggestion(key).getName(), equalTo(key)); for (Suggest.Suggestion.Entry.Option option : searchSuggest.getSuggestion(key).getEntries().get(0).getOptions()) { if (option.collateMatch()) { counter++; } } assertThat(counter, equalTo(numberOfPhraseExists)); }
.getSuggestion(SearchFacetName.AUTO_SUGGESTION.getCode()) .getEntries()) { for (final Option option : suggestEntry.getOptions()) { final int count = ((TermSuggestion.Entry.Option) option) .getFreq();
for (Option option : suggestEntry.getOptions())
@Override public List<String> findSimilarWords(String searchQuery) { SearchResponse result = client.prepareSearch(INDEX_NAME) .suggest(new SuggestBuilder() .addSuggestion(FIELD_NAME, SuggestBuilders .termSuggestion(FIELD_NAME) .maxEdits(2) .suggestMode(SuggestMode.ALWAYS) .size(1) .text(searchQuery))) .get(); Suggest suggest = result.getSuggest(); List<String> similarWords = new ArrayList<>(); if (suggest != null) { Suggestion<? extends Entry<? extends Option>> suggestions = suggest.getSuggestion(FIELD_NAME); for (Entry<? extends Option> options : suggestions.getEntries()) { for (Option option : options.getOptions()) { similarWords.add(option.getText().string()); } } } return similarWords; }