【发布时间】:2012-08-05 06:20:33
【问题描述】:
要使用 Solr,我需要我的搜索框在用户输入时提供建议。使用下拉菜单。我怎样才能完成它?有没有现成的例子?
【问题讨论】:
标签: search drop-down-menu autocomplete solr autosuggest
要使用 Solr,我需要我的搜索框在用户输入时提供建议。使用下拉菜单。我怎样才能完成它?有没有现成的例子?
【问题讨论】:
标签: search drop-down-menu autocomplete solr autosuggest
看看 Suggester 组件 - http://wiki.apache.org/solr/Suggester/
【讨论】:
Here 是我写的一篇关于提出自动建议的不同方法以及如何做出正确选择的文章。如果您想要更高级和更灵活的东西,可以使用 this other article,其中还包含一个示例。
【讨论】:
提供自动建议功能的方法有多种。
单项建议
此方法先查找第一个字母,然后查找短语中的第一个单词,搜索“men's shirt”必须以“m”开头,然后是“men's”,才能找到“men's shirt”作为响应。
这可以通过使用以下字段类型并使用my little po*查询来完成
<fieldType name="suggestion_text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
</analyzer>
</fieldType>
多词无序建议
此自动完成方法将“衬衫”识别为短语的一部分,例如“男士衬衫”,并将其与“女士衬衫”、“工作衬衫”和其他包含“男士”的短语一起推荐给客户。
这可以通过使用以下字段类型并使用my AND little AND po*查询来完成
<fieldType name="prefix_text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
</analyzer>
</fieldType>
多词条排序建议
第三种方法匹配包含完整短语的子短语的所有内容,只要它的顺序正确,即“men's shir”,而不是“shirts me”。
Solr 没有内置功能来生成它,但我们可以实现自己的令牌过滤器。有关此实施和以前实施的更多信息(以及完整信息) - 请查看此blog post
【讨论】: