首页 > 解决方案 > Solr Suggester 需要很长时间才能提供响应

问题描述

我正在使用 Solr Suggester 在我们应用程序的搜索页面中提供建议。但是对 Solr 的每个建议请求都需要很长时间才能发送响应。我尝试了多个查找 Impl,例如 AnalyzingLookupFactory、AnalyzingInfixLookupFactory、FuzzyLookupFactory 等。

下面是我的配置:

<searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester">
        <str name="name">mySuggester</str>
        <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
        <str name="dictionaryImpl">DocumentDictionaryFactory</str>
        <str name="field">spell_suggest</str>
        <str name="weightField">spell_suggest</str>
        <str name="suggestAnalyzerFieldType">text_general</str>
        <str name="buildOnStartup">false</str>
    </lst>
    <lst name="suggester">
        <str name="name">altSuggester</str>
        <str name="dictionaryImpl">DocumentDictionaryFactory</str>
        <str name="lookupImpl">FuzzyLookupFactory</str>
        <str name="field">spell_suggest</str>
        <str name="weightField">spell_suggest</str>
        <str name="suggestAnalyzerFieldType">text_general</str>
 </lst>
</searchComponent>

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
    <!--<str name="suggest.dictionary">mySuggester</str> -->
    <str name="suggest.dictionary">altSuggester</str>
    <str name="suggest">true</str>
    <str name="suggest.count">6</str>
    <str name="spellcheck">true</str>
</lst>
<arr name="components">
    <str>suggest</str>
</arr>
</requestHandler>

响应只有 42000 个索引文档,需要将近 5 到 7 秒才能提供响应。这严重影响了应用程序中的功能

以下是我的要求:http://<myIP>:8983/solr/mycollection/suggest?df=spell_suggest&suggest=true&suggest.build=true&q=Vendor

请建议我是否需要提供更多配置或需要修改现有配置以提高性能。

谢谢!

标签: solrlucene

解决方案


当您每次发出Suggest.build 时,您实际上是在每次查询建议者时都要求从头开始重建建议索引。

仅应在必要时在更改后重建它(取决于dictionaryImpl您使用的是哪个)。


推荐阅读