Solr: получение сопоставлений из ответа на запрос - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь настроить проверку орфографии 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 раза. то есть еда жесткая - четыре раза.

1 Ответ

0 голосов
/ 22 сентября 2011

Я думаю, что вы хотите вызвать QueryResponse.getSpellCheckResponse () и перейти оттуда. Вот несколько ссылок на документацию, которые могут вам пригодиться:

http://lucene.apache.org/solr/api/org/apache/solr/client/solrj/response/SpellCheckResponse.Collation.html

http://lucene.apache.org/solr/api/index.html?org/apache/solr/client/solrj/response/SpellCheckResponse.html

...