static Map<String, List<Alternative>> extreactSuggestions(QueryResponse response) { if (response == null || response.getSpellCheckResponse() == null || response.getSpellCheckResponse().getSuggestions() == null) { return Collections.emptyMap(); } Map<String, List<Alternative>> alternativesMap = new LinkedHashMap<>(); SpellCheckResponse scr = response.getSpellCheckResponse(); if (scr != null && scr.getSuggestions() != null) { for (SpellCheckResponse.Suggestion suggestion : scr.getSuggestions()) { List<Alternative> alternatives = new ArrayList<>(); if (!CollectionUtils.isEmpty(suggestion.getAlternatives())) { for (int i = 0; i < suggestion.getAlternatives().size(); i++) { alternatives.add(new Alternative(suggestion.getToken(), suggestion.getOriginalFrequency(), suggestion.getAlternatives().get(i), suggestion.getAlternativeFrequencies().get(i))); } } alternativesMap.put(suggestion.getToken(), alternatives); } } return alternativesMap; }
SpellCheckResponse spellCheckResp = new SpellCheckResponse(nl); for (SpellCheckResponse.Suggestion suggestion : spellCheckResp.getSuggestions()) { mergeData.origVsSuggestion.put(suggestion.getToken(), suggestion); HashSet<String> suggested = mergeData.origVsSuggested.get(suggestion.getToken()); if (suggested == null) { suggested = new HashSet<String>(); mergeData.origVsSuggested.put(suggestion.getToken(), suggested); Integer o = mergeData.origVsFreq.get(suggestion.getToken()); if (o != null) origFreq += o; origFreq += suggestion.getOriginalFrequency(); mergeData.origVsFreq.put(suggestion.getToken(), origFreq); Integer origShards = mergeData.origVsShards.get(suggestion.getToken()); if(origShards==null) { mergeData.origVsShards.put(suggestion.getToken(), 1); } else { mergeData.origVsShards.put(suggestion.getToken(), ++origShards);
/** * @see org.opencms.jsp.search.result.I_CmsSearchResultWrapper#getDidYouMeanSuggestion() */ public Suggestion getDidYouMeanSuggestion() { I_CmsSearchControllerDidYouMean didYouMeanController = getController().getDidYouMean(); Suggestion usedSuggestion = null; if ((null != didYouMeanController) && ((m_solrResultList != null) && (m_solrResultList.getSpellCheckResponse() != null))) { // find most suitable suggestion List<Suggestion> suggestionList = m_solrResultList.getSpellCheckResponse().getSuggestions(); int queryLength = m_controller.getDidYouMean().getState().getQuery().length(); int minDistance = queryLength + 1; for (Suggestion suggestion : suggestionList) { int currentDistance = Math.abs(queryLength - suggestion.getToken().length()); if (currentDistance < minDistance) { usedSuggestion = suggestion; minDistance = currentDistance; } } } return usedSuggestion; }
List<SpellCheckResponse.Suggestion> suggestions = spellCheckResponse.getSuggestions(); for (SpellCheckResponse.Suggestion suggestion : suggestions) { spellingSuggestionsByToken.put(suggestion.getToken(), suggestion.getAlternatives());