Как отобразить предложения проверки орфографии Solr в Java-программе? - PullRequest
0 голосов
/ 02 ноября 2018

Этот метод я использовал в сервисе для отображения предложений проверки орфографии Я могу получить результаты моего BO, но я не знаю, как отобразить предложения.

public Page spellCheck (последний запрос String) {

SpellcheckedPage<Thread> page = solrTemplate
        .execute(new SolrCallback<SpellcheckedPage<Thread>>() {

            public SpellcheckedPage<Thread> doInSolr(SolrServer solrServer)
                    throws SolrServerException, IOException {
                SolrQuery q = new SolrQuery("title:" + query);

                ModifiableSolrParams params = new ModifiableSolrParams() {
                    {
                        add("spellcheck.build", "true");
                        add("spellcheck.q", query);
                        add("spellcheck", "true");
                        add("spellcheck.count","5");
                        add("spellcheck.collate","true");
                        add("spellcheck.accuracy","0.5");
                    }
                };
                q.add(CommonParams.QT, "/spell");
                q.add(params);

                QueryResponse response = solrServer.query(q);

                System.out.println(response.toString());

                // init page with search result
                SpellcheckedPage<Thread> page = new SpellcheckedPage<Thread>(
                        solrTemplate.getConverter().read(response.getResults(), Thread.class));

                // add spellcheck result
                SpellCheckResponse scr = response.getSpellCheckResponse();
                for (Suggestion suggestion : scr.getSuggestions()) {
                    page.addSuggestions(suggestion.getToken(), suggestion.getAlternatives());
                }
                System.out.println(page.getSuggestions());
                return page;
            }
        });

    return page;
}

и я написал другой класс

открытый класс SpellcheckedPage extends SolrResultPage {

/**
 * 
 */
private static final long serialVersionUID = 1L;

public SpellcheckedPage(List<T> content) {
    super(content);
    // TODO Auto-generated constructor stub
}

private Map<String, List<String>> suggestions = new LinkedHashMap<String, List<String>>();

public void addSuggestions(String term, List<String> suggestions) {
    this.suggestions.put(term, suggestions);
}

public Collection<String> getSuggestions(String term) {
    return this.suggestions.get(term);
}

public Collection<String> getSuggestions() {
    List<String> allSuggestions = new ArrayList<String>();
    for (List<String> suggestions : this.suggestions.values()) {
        allSuggestions.addAll(suggestions);
    }
    return allSuggestions;
}

}

Но я не могу напечатать предложения как вывод? Заранее спасибо

...