【问题标题】:solr autocomplete with scope is it possible?有范围的solr自动完成是可能的吗?
【发布时间】:2012-07-20 08:34:51
【问题描述】:

我正在深入研究 solr 配置内容,并试图弄清楚如何实现自动完成功能。

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

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

我正在使用 Rails 3sunspot gemsolr 3.6

更新:

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

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

【问题讨论】:

    标签: ruby-on-rails solr sunspot


    【解决方案1】:

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

    【讨论】:

    • 谢谢!我用更多细节更新了我的答案。如果您有任何其他问题,请告诉我!
    【解决方案2】:

    我正在使用 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) 发送查询,上述查询也应该与您要查找的内容相似。

    【讨论】:

      猜你喜欢
      • 2014-02-12
      • 2013-05-02
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2011-03-29
      相关资源
      最近更新 更多