在弹性搜索或solr中,是否有基于过去查询历史记录支持自动查询建议器的方法? 基本上,每当我输入一个查询时,我想有一个下拉列表,根据我的搜索历史建议我一个查询列表。
答案 0 :(得分:1)
您正在组合自动提示和最近搜索字段。 solr提供的是基于您的搜索词和现有数据的自动提示。
并且solr不提供最近的搜索功能。您必须维护最近使用的查询术语的单独数据库,然后显示它们。您也可以使用cookies。此功能完全在Web应用程序级别,而solr与它无关。
所以你在这里结合上述两件事 - “基于过去的查询的autosuggest”。请理解框架提供的要求和功能,然后您将自己获得答案。快乐学习
答案 1 :(得分:0)
Solr中的SuggestComponent为用户提供查询字词的自动建议。您可以使用它在搜索应用程序中实现强大的自动建议功能。
虽然可以使用拼写检查功能来启动自动提示行为,但Solr有一个专门用于此功能的SuggestComponent。这种方法利用Lucene的建议实现,并支持Lucene中提供的所有查找实现。
第一步是将搜索组件添加到solrconfig.xml以扩展SpellChecker。以下是一些可以使用的示例代码。
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">cat</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">false</str>
</lst>
</searchComponent>
添加建议请求处理程序
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
以上配置来自Solr 5.2.0文档。