0

ブラウザで solr に対してスペルチェック クエリを実行すると、提案と照合を含む応答が表示されますが、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 から呼び出すと、応答の「照合」部分を除いて、上記のすべてが得られます。

そこで、ブラウザからこの URL (wt=javabin とバージョンを追加) を試して、solr4j が何を受け取っているかを確認しました。

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

ファイルをダウンロードし、それをテキストエディタで開きます

£‡.responseHeader¢‡&amp;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

読めませんが、そこに「照合」という文字が見えます!では、Solr4j がそれを認識しないのはなぜでしょうか?

4

1 に答える 1

0

SolrJ SpellCheckResponseオブジェクトを利用して、照合応答にアクセスしたいと考えています。これは、次を使用して表示できるはずです。

 ...
 QueryResponse response = solr.query(params);
 SpellCheckResponse spellCheckResponse = response.getSpellCheckResponse(); 
 List<SpellCheckResponse.Collation> collations = spellCheckResponse.getCollatedResults();
于 2013-06-10T19:52:14.067 に答える