<searchComponent name="suggest" class="solr.SpellCheckComponent"> <!--分词方法 方法不同 建议的结果区别很大--> <str name="queryAnalyzerFieldType">string</str> <lst name="spellchecker"> <str name="name">suggest</str> <str name="classname">org.apache.solr.spelling.suggest.Suggester</str> <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str> <!--相应字段--> <str name="field">ProductName</str> <float name="threshold">0.0001</float> <str name="spellcheckIndexDir">spellchecker</str> <str name="comparatorClass">freq</str> <str name="buildOnOptimize">true</str> <!--<str name="buildOnCommit">true</str>--> </lst> </searchComponent> <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy"> <lst name="defaults"> <str name="spellcheck">true</str> <str name="spellcheck.dictionary">suggest</str> <str name="spellcheck.onlyMorePopular">true</str> <str name="spellcheck.extendedResults">false</str> <!--建议数量--> <str name="spellcheck.count">10</str> <str name="spellcheck.collate">true</str> </lst> <arr name="components"> <str>suggest</str> </arr> </requestHandler>
在solrconfig.xml中的配置如上
地址:http://localhost:8080/solr/Product/suggest/?q=衣
结果
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">1</int> </lst> <lst name="spellcheck"> <lst name="suggestions"> <lst name="衣"> <int name="numFound">9</int> <int name="startOffset">0</int> <int name="endOffset">1</int> <arr name="suggestion"> <str>衣裙</str> <str>衣柜</str> <str>衣架</str> <str>衣裤</str> <str>衣服</str> <str>衣物</str> <str>衣橱</str> <str>衣帽</str> <str>衣帽间</str> </arr> </lst> <str name="collation">衣裙</str> </lst> </lst> </response>