4

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

4

1 回答 1

10

也许您已经找到了解决方案,无论如何SpellingResult,当您使用 SolrJ 访问 Solr 服务器时,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());
    }
}

希望这可以帮助。

于 2011-10-12T10:00:17.183 回答