如何在SolrJ中使用SpellingResult类

时间:2011-06-24 10:37:03

标签: java solr solrj spell-checking

我正在使用SolrJ。但是通过API文档无法弄清楚如何使用特定类来接收拼写检查器的响应。 我有一个在solrconfig.xml中定义的搜索组件,用于执行检查

1 个答案:

答案 0 :(得分:9)

也许你已经找到了解决方案,无论如何SpellingResult类附带Solr,而你使用SolrJ访问Solr服务器,如果我没错。所以,你应该使用SolrJ附带的特定类; QueryResponse对象包含一个SpellCheckResponse对象,其中包含您要查找的所有信息。

SolrServer solr = new CommonsHttpSolrServer("http://localhost:8080/solr");
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("qt", "/spell");
params.set("q", "whatever");
params.set("spellcheck", "on");
//params.set("spellcheck.build", "true");

QueryResponse response = solr.query(params);
SpellCheckResponse spellCheckResponse = response.getSpellCheckResponse();
if (!spellCheckResponse.isCorrectlySpelled()) {
    for (Suggestion suggestion : response.getSpellCheckResponse().getSuggestions()) {
        logger.debug("original token: " + suggestion.getToken() + " - alternatives: " + suggestion.getAlternatives());
    }
}

希望这有帮助。