1

我正在研究solr配置的东西,并试图弄清楚如何实现自动完成功能。

这里提到的一些细节http://wiki.apache.org/solr/Suggester/

但我不想为所有站点使用相同的字典——当你有一些私人数据时它没有用。我的意思是有几家公司使用搜索,我只想根据公司数据进行自动完成。是否可以使用某些语法来限制自动完成结果的范围。

我正在使用Rails 3sunspot gemsolr 3.6

更新:

我找到了为rails 3更新的 gem,这里记录了必要的配置是https://github.com/xponrails/sunspot_autocomplete

两个答案都帮助我做到这一点

4

2 回答 2

1

不幸的是,无法过滤通过Suggester. 你可能想看看我写的这个博客,看看你有其他选择。您应该考虑使用文章中描述的构面前缀或 NGrams 解决方案。我猜 Ngrams 解决方案更灵活,性能更高,但会导致索引大小的增长,而 facet 前缀方法已经准备好使用,但可能会更慢。试一试,看看你更喜欢哪一个。

于 2012-07-20T10:23:16.480 回答
1

我正在使用 EdgeNgram 字段并对它进行自动完成查询。

在您的 schema.xml 中是这样的:

<field name="title_auto" type="edge_ngram" indexed="true" stored="true" multiValued="false" />

查询“测试”看起来像

Jul 20, 2012 12:28:58 PM org.apache.solr.core.SolrCore execute
INFO: [collection1] webapp=/solr path=/select/ params={spellcheck=true&sort=date+desc fl=*+score&start=0&q=title_auto:(test)&spellcheck.count=1&spellcheck.collate=true&wt=json hits=0 status=0 QTime=2

即使我使用第三方应用程序向 Solr (Django-Haystack) 发送查询,上述查询应该与您正在寻找的类似。

于 2012-07-20T10:35:32.957 回答