如何在 Solr 中以 List<String> 的形式获取拼写检查响应
How to get the Spellcheck response as List<String> in SolrJ
我正在尝试使用 Solr 的拼写检查响应实现自动完成。
我能够获得给定查询的响应,但我无法获得建议到 Solrj 中的字符串列表的术语。
Solr 响应:
{
"responseHeader":{
"status":0,
"QTime":1},
"spellcheck":{
"suggestions":[
"stac",{
"numFound":4,
"startOffset":0,
"endOffset":3,
"suggestion":["stack",
"stacking"]}]}}
SolrJ 代码:
SolrClient solrClients=new HttpSolrClient.Builder("http://localhost:8983/solr/star/").build();
SolrQuery sq = new SolrQuery();
sq.setRequestHandler("/suggest");
sq.set("spellcheck", true);
sq.set("spellcheck.dictionary", "suggestDictionary");
sq.set("suggest.q",query);
sq.setQuery(query);
QueryResponse rsp = solrClients.query(sq);
我正在尝试将建议的单词放入字符串列表中,但无法找到解决方案。
提前致谢。
你快到了。获得 QueryRespnse 后,您需要提取 SpellCheckResponse,然后通过以下方式从那里获取建议:
QueryResponse queryResponse = solrClients.query(sq);
SpellCheckResponse spellCheckResponse = queryResponse.getSpellCheckResponse();
List<Suggestion> suggestions = spellCheckResponse.getSuggestions();
值得一提的是,您还可以选择在地图中获取建议:
Map<String, Suggestion> suggestionsMap = spellCheckResponse.getSuggestionMap();
一旦您有了所需的建议(遍历列表或从地图中获取值),您可以使用以下代码获取备选方案列表:
List<String suggestedWords> = spellCheckResponse.getAlternatives();
我正在尝试使用 Solr 的拼写检查响应实现自动完成。 我能够获得给定查询的响应,但我无法获得建议到 Solrj 中的字符串列表的术语。
Solr 响应:
{
"responseHeader":{
"status":0,
"QTime":1},
"spellcheck":{
"suggestions":[
"stac",{
"numFound":4,
"startOffset":0,
"endOffset":3,
"suggestion":["stack",
"stacking"]}]}}
SolrJ 代码:
SolrClient solrClients=new HttpSolrClient.Builder("http://localhost:8983/solr/star/").build();
SolrQuery sq = new SolrQuery();
sq.setRequestHandler("/suggest");
sq.set("spellcheck", true);
sq.set("spellcheck.dictionary", "suggestDictionary");
sq.set("suggest.q",query);
sq.setQuery(query);
QueryResponse rsp = solrClients.query(sq);
我正在尝试将建议的单词放入字符串列表中,但无法找到解决方案。
提前致谢。
你快到了。获得 QueryRespnse 后,您需要提取 SpellCheckResponse,然后通过以下方式从那里获取建议:
QueryResponse queryResponse = solrClients.query(sq);
SpellCheckResponse spellCheckResponse = queryResponse.getSpellCheckResponse();
List<Suggestion> suggestions = spellCheckResponse.getSuggestions();
值得一提的是,您还可以选择在地图中获取建议:
Map<String, Suggestion> suggestionsMap = spellCheckResponse.getSuggestionMap();
一旦您有了所需的建议(遍历列表或从地图中获取值),您可以使用以下代码获取备选方案列表:
List<String suggestedWords> = spellCheckResponse.getAlternatives();