Solr suggest 搜索建议功能 配置问题

<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>
原文地址:https://www.cnblogs.com/steben/p/3612074.html