solr4.10 配置suggest 智能提示

1.suggest简介

    suggest是solr 的智能提示组建,效果就是百度或谷歌在输入中下方所出现的提示内容.

        solr4.10 配置suggest 智能提示_第1张图片

2.开启组建

    配置solrhome中的solrconfig.xml

    本人使用的solr4.10 solrconfig.xml中带有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">suggestion</str>
        <float name="threshold">0.0001</float> 
        <!-- 使用自定义suggest词库词可以将如下两行的注释取消 --> 
        <str name="sourceLocation">suggest.txt</str> 
        <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="org.apache.solr.handler.component.SearchHandler">    
    <lst name="defaults">
        <str name="df">text</str>
        <str name="spellcheck">true</str>    
        <str name="spellcheck.dictionary">suggest</str>    
        <str name="spellcheck.count">10</str>    
        <str name="spellcheck.onlyMorePopular">true</str>  
        <str name="spellcheck.extendedResults">false</str>        
        <str name="spellcheck.collate">true</str>  
        <!--<str name="spellcheck.build">true</str>  -->    
    </lst>    
    <arr name="components">    
        <str>suggest</str>    
    </arr>    
  </requestHandler>

    注意:原来

                <str name="sourceLocation">suggest.txt</str>
                <str name="spellcheckIndexDir">spellchecker</str>

        是注释的,如果使用词典,直接把着两行注释.在solrconfig.xml相同路径下创建suggest.txt就可以.

        然后在文件中输入你想要提示的词.

        重新启动solr

3,测试

    http://localhost:8080/solr/collection1/suggest?q=p&spellcheck.build=true

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">1</int>
</lst>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="p">
<int name="numFound">4</int>
<int name="startOffset">0</int>
<int name="endOffset">1</int>
<arr name="suggestion">
<str>php</str>
<str>path</str>
<str>position</str>
<str>python</str>
</arr>
</lst>
<str name="collation">php</str>
</lst>
</lst>
</response>

   更改或创建词典后需要添加 spellchek.build=true ,但是会增加较长的时间,不建议每次调用都使用此参数

    

你可能感兴趣的:(solr4.10 配置suggest 智能提示)