solr自动完成与范围是否可能?

时间:2012-07-20 08:34:52

标签: ruby-on-rails solr sunspot

我正在深入研究 solr 配置文件并尝试弄清楚如何实现自动完成功能。

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

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

我正在使用 Rails 3 太阳黑子宝石 solr 3.6

更新

我发现gem更新了 rails 3 并记录了必要的配置 这是https://github.com/xponrails/sunspot_autocomplete

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

2 个答案:

答案 0 :(得分:1)

很遗憾,无法过滤通过Suggester发出的自动建议。 你可能想看看我为其他选项写的this blog。您应该考虑使用facet前缀或本文中描述的NGrams解决方案。我猜测Ngrams解决方案更灵活,性能更高,但会导致索引大小的增长,而facet前缀方法已准备就绪,但可能更慢。试试看你喜欢哪一个。

答案 1 :(得分: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)发送查询,上述查询也应该与您要查找的类似。