我正在尝试配置SOLR拼写检查。我的请求和响应似乎工作正常。唯一的问题是如何从响应中获取Collations。
这是我的回复中包含排序规则的部分。 我使用API中的哪些方法来提取3个排序规则。
<str name="collation">ipod tough</str>
<str name="collation">ipad tough</str>
<str name="collation">wood tough</str>
<str name="collation">food tough</str>
这是我目前正在使用的方法:
List<String> suggestedTermsList = new ArrayList<String>();
if(aQueryResponse == null) {
return suggestedTermsList;
}
try {
SpellCheckResponse spellCheckResponse = aQueryResponse.getSpellCheckResponse();
if(spellCheckResponse == null) {
throw new Exception("No SpellCheckResponse in QueryResponse");
}
List<Collation> collationList = spellCheckResponse.getCollatedResults();
for(Collation c : collationList){
suggestedTermsList.add(c.getCollationQueryString());
}
}catch(Exception e) {
Trace.Log("SolrSpellCheck",Trace.HIGH, "Exception: " + e.getMessage());
}
return suggestedTermsList;
我的回复标题是这样的:
spellcheck = {suggestions = {ipood = {numFound = 5,startOffset = 0,endOffset = 5,suggestion = [ipod,ipad,wood,food,pod]},collation = ipod tough,collation = ipad tough,collation =木质坚韧,整理=食物坚韧}}}
我得到4个排序规则,我想添加到List suggestTermsList,然后我返回到调用代码。现在我的ArrayList有4个排序规则,但它只重复最后一次排序4次。即食物坚韧 - 四次。
答案 0 :(得分:0)
我想你想调用QueryResponse.getSpellCheckResponse()并从那里开始。以下是您可能会发现有用的文档的一些链接: