Solr Suggester 提供响应的时间太长
Solr Suggester taking too long to provide response
我正在使用 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
请建议我是否需要提供更多配置或需要修改现有配置以提高性能。
谢谢!
当您每次发出 suggest.build 时,您实际上是在每次查询建议器时都要求从头开始重建建议索引。
它应该只在必要时在更改后重建(取决于您使用的dictionaryImpl
)。
我正在使用 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
请建议我是否需要提供更多配置或需要修改现有配置以提高性能。
谢谢!
当您每次发出 suggest.build 时,您实际上是在每次查询建议器时都要求从头开始重建建议索引。
它应该只在必要时在更改后重建(取决于您使用的dictionaryImpl
)。