问题描述
solrconfig配置:<searchComponentname="spellcheck"class="solr.SpellCheckComponent"><strname="queryAnalyzerFieldType">string</str><lstname="spellchecker"><strname="name">default</str><strname="field">text</str><strname="classname">solr.DirectSolrSpellChecker</str><strname="distanceMeasure">internal</str><floatname="accuracy">0.5</float><intname="maxEdits">2</int><intname="minPrefix">1</int><intname="maxInspections">5</int><intname="minQueryLength">4</int><floatname="maxQueryFrequency">0.01</float><!--uncommentthistorequiresuggestionstooccurin1%ofthedocuments<floatname="thresholdTokenFrequency">.01</float>--></lst></searchComponent><requestHandlername="/spell"class="solr.SearchHandler"startup="lazy"><lstname="defaults"><strname="df">text</str><strname="spellcheck.dictionary">default</str><strname="spellcheck">on</str><strname="spellcheck.extendedResults">true</str><strname="spellcheck.count">10</str><strname="spellcheck.alternativeTermCount">5</str><strname="spellcheck.maxResultsForSuggest">5</str><strname="spellcheck.collate">true</str><strname="spellcheck.collateExtendedResults">true</str><strname="spellcheck.maxCollationTries">10</str><strname="spellcheck.maxCollations">5</str></lst><arrname="last-components"><str>spellcheck</str></arr></requestHandler访问链接http://10.9.47.205/solr/oasearch/spell?q=h&spellcheck=true&spellcheck.collate=true&spellcheck.build=true结果:<response>-<lstname="responseHeader"><intname="status">0</int><intname="QTime">25</int></lst><strname="command">build</str>-<resultname="response"maxScore="0.78987104"start="0"numFound="5">-<doc><strname="id">45</str><strname="phone">42434</str><intname="age">23</int><strname="name">highlight</str><longname="_version_">1473768737487192064</long></doc>........这里有很多结果</result>-<lstname="spellcheck">-<lstname="suggestions"><boolname="correctlySpelled">false</bool></lst></lst>看别人和官网上的这块是会有建议结果的···为什么我这是这个样子····</response>
解决方案
解决方案二:
第一次接触solr·····急求大神帮助,后面还有后续···配置了suggest,但是没有结果····
解决方案三:
加点分,求别沉,···困扰两天了··
解决方案四:
你好我也遇到这个问题了,你解决没
解决方案五:
引用3楼jiandie123的回复:
你好我也遇到这个问题了,你解决没
这个应该是<strname="spellcheck.dictionary">default</str>dictionary设置的问题就是前面对应的这个<lstname="spellchecker"><strname="name">default</str><strname="field">text</str>...</lst>这个是用solr中的text内容作为词典来做拼写检查的,具体我还没搞清楚用下面的文件dictionary比较容易一点把这个spellchecker(就是requestHandler中的spellcheck.dictionary)的注释去掉,sourceLocation的spellings.txt在你的solrhome的conf文件夹下,跟solrConfig.xml在一起,在其中添加词语作为词典,一行只写一个。比如iloveyou<lstname="spellchecker"><strname="name">file</str><strname="classname">solr.FileBasedSpellChecker</str><strname="sourceLocation">spellings.txt</str><strname="characterEncoding">UTF-8</str><strname="spellcheckIndexDir">spellcheckerFile</str></lst>把<strname="spellcheck.dictionary">default</str>改为<strname="spellcheck.dictionary">file</str>启动solr查询中指定spellcheck.dictionary=filespellcheck.build=true这个参数只在第一次查询时使用http://localhost:8080/solr/spell?q=ilovyou&spellcheck=true&spellcheck.collate=true&spellcheck.dictionary=file&spellcheck.build=true可以试下看看,这是直接用文件内容作为词典的默认的是使用solrtext字段的内容作为字典。详情参考solrwikiSpellCheckComponenthttp://wiki.apache.org/solr/SpellCheckComponent/