基于过去的查询历史记录的自动查询建议器

时间:2015-08-04 18:47:14

标签: solr elasticsearch

在弹性搜索或solr中,是否有基于过去查询历史记录支持自动查询建议器的方法? 基本上,每当我输入一个查询时,我想有一个下拉列表,根据我的搜索历史建议我一个查询列表。

2 个答案:

答案 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文档。