Я пытаюсь настроить проверку орфографии SOLR. Кажется, мой запрос и ответ работают нормально. Единственная проблема заключается в том, как я могу получить сопоставления из ответа.
Это часть моего ответа, в которой есть сопоставления.
Какие методы в 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;
Мой заголовок ответа выглядит так:
проверка орфографии = {подсказки = {ipood = {numFound = 5, startOffset = 0, endOffset = 5, подсказка = [ipod, ipad, wood, food, pod]}, сортировка = ipod жесткая, collation = ipad жесткая, collation = древесина жесткая, сопоставление = еда жесткая}}}
Я получаю 4 сопоставления, которые я хочу добавить в ListTermsList List, которые затем возвращаю к вызывающему коду. Прямо сейчас мой ArrayList имеет 4 сопоставления, но последний повтор повторяется только 4 раза. то есть еда жесткая - четыре раза.