2013-06-10 1 views
0

브라우저에서 solr에 대해 spellcheck 쿼리를 실행하면 제안 및 데이터 정렬에 대한 응답을 볼 수 있지만 solr4j를 사용하여 실행하면 제안 사항 만 표시됩니다.Solr4j 및 데이터 정렬 응답

쿼리

http://localhost:8080/solr/peeps/mySuggest?qt=%2FmySuggest&distrib=false&df=myFieldLookup&q=myFieldLookup:sc+ma&start=0&rows=0 

응답

<response> 
<lst name="responseHeader"> 
<int name="status">0</int> 
<int name="QTime">3</int> 
</lst> 
<result name="response" numFound="0" start="0"/> 
<lst name="spellcheck"> 
<lst name="suggestions"> 
<lst name="sc"> 
<int name="numFound">1</int> 
<int name="startOffset">32</int> 
<int name="endOffset">34</int> 
<arr name="suggestion"> 
<str>science</str> 
</arr> 
</lst> 
<lst name="ma"> 
<int name="numFound">2</int> 
<int name="startOffset">35</int> 
<int name="endOffset">37</int> 
<arr name="suggestion"> 
<str>management</str> 
<str>master</str> 
</arr> 
</lst> 
<lst name="collation"> 
<str name="collationQuery">myFieldLookup:science management</str> 
<int name="hits">1</int> 
<lst name="misspellingsAndCorrections"> 
<str name="sc">science</str> 
<str name="ma">management</str> 
</lst> 
</lst> 
<lst name="collation"> 
<str name="collationQuery">myFieldLookup:science master</str> 
<int name="hits">1</int> 
<lst name="misspellingsAndCorrections"> 
<str name="sc">science</str> 
<str name="ma">master</str> 
</lst> 
</lst> 
</lst> 
</lst> 
</response> 

하지만 solr4j에서 호출 할 때, 나는 응답의 "정렬"부분을 제외하고 위의 모든 얻을!

따라서 solr4j가 수신중인 것을 확인하기 위해 브라우저에서이 URL을 시도했습니다 (추가 된 wt = javabin & 버전).

내가 텍스트 편집기

£‡.responseHeader¢‡&status‡%QTimeB‡(responseÉ``ć*spellcheck°‡+suggestionsƒ‡"sc§‡(numFoundA‡+startOffsetP‡)endOffsetR‡*suggestionÅ'science‡"ma§ËBÈSÍUÎÇ*management&master‡)collation√‡.collationQuery?myFieldLookup:science management‡$hitsA‡:misspellingsAndCorrections¬Á'scienceÏ*managementÌ√Ó?myFieldLookup:science masterÔA¬Á'scienceÏ&master 

으로는 읽을 수없는 파일을 여는 &을 다운로드했지만, 내가 거기에 단어 "정렬"을 볼 수 있습니다

http://localhost:8080/solr/peeps/mySuggest?qt=%2FmySuggest&distrib=false&df=myFieldLookup&q=myFieldLookup:sc+ma&start=0&rows=0&wt=javabin&version=2 

! 그래서, 왜 Solr4j는 그것을 선택하지 않습니까?

답변

0

SolrJ SpellCheckResponse 개체를 활용하여 데이터 정렬 응답에 액세스하려고합니다. 다음을 사용하여 이것을 볼 수 있어야합니다.

... 
QueryResponse response = solr.query(params); 
SpellCheckResponse spellCheckResponse = response.getSpellCheckResponse(); 
List<SpellCheckResponse.Collation> collations = spellCheckResponse.getCollatedResults(); 
+0

이미 맞춤법 검사를 사용하고있었습니다. 쿼리에서 "+"기호를 urlencoding하고 결과를 왜곡하는 코드에서 오류가 발생했습니다! – user2023507