0
我遇到了solr 6.5.0的拼寫檢查組件問題。如果我通過拼寫檢查請求處理程序/ spell運行查詢,則查詢將按預期工作,併爲錯誤的單詞提供拼寫建議。SOLR拼寫檢查沒有返回結果
{
"responseHeader":{
"status":0,
"QTime":42},
"response":{"numFound":0,"start":0,"docs":[]
},
"spellcheck":{
"suggestions":{
"injary":{
"numFound":3,
"startOffset":0,
"endOffset":6,
"origFreq":0,
"suggestion":[{
"word":"injury",
"freq":121},
{
"word":"inward",
"freq":3},
{
"word":"injure",
"freq":1}]}},
"correctlySpelled":false,
"collations":{
"collation":{
"collationQuery":"injury",
"hits":121,
"misspellingsAndCorrections":[
"injary","injury"]},
"collation":{
"collationQuery":"inward",
"hits":3,
"misspellingsAndCorrections":[
"injary","inward"]},
"collation":{
"collationQuery":"injure",
"hits":1,
"misspellingsAndCorrections":[
"injary","injure"]}}}}
但是,如果我通過標準請求處理程序運行查詢/ select,我不會收到任何建議。
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"injary",
"indent":"on",
"spellcheck":"on",
"wt":"json",
"_":"1492780436450"}},
"response":{"numFound":0,"start":0,"docs":[]
}}
任何幫助將不勝感激。
我修改了solrconfig.xml中帶來兩個請求處理成線如下,其餘爲默認設置:
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">content</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.5</float>
<int name="maxEdits">2</int>
<int name="minPrefix">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">4</int>
<float name="maxQueryFrequency">0.01</float>
<float name="thresholdTokenFrequency">.0001</float>
</lst>
<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<!-- Solr will use suggestions from both the 'default' spellchecker
and from the 'wordbreak' spellchecker and combine them.
collations (re-written queries) can include a combination of
corrections from both spellcheckers -->
<str name="spellcheck.dictionary">default</str>
<str name="spellcheck">on</str>
<str name="spellcheck.extendedResults">true</str>
<str name="spellcheck.count">10</str>
<str name="spellcheck.alternativeTermCount">5</str>
<str name="spellcheck.maxResultsForSuggest">5</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">true</str>
<str name="spellcheck.maxCollationTries">10</str>
<str name="spellcheck.maxCollations">5</str>
<str name="wt">json</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">_text_</str>
<str name="wt">json</str>
<!-- spell check component configuration -->
<str name="spellcheck">true</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.maxCollationTries">5</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
這是你的'solrconfig.xml'的一部分,你已經修改後重新啓動了Solr? – freedev
我在更改後重新啓動 – Zoran