Rails 3 Sunspot全文搜索用法

时间:2012-08-21 19:19:03

标签: ruby-on-rails-3 solr sunspot

所以我在我的应用程序中实现了sunspot_rails gem,以利用强大的Solr搜索引擎。我最近检查了Ryan railscast的全文搜索,我注意到他在搜索查询中使用了其他参数,例如“ - ”来表示不应包含在内的完整内容 - 文本搜索。

我从来没有听说过这个,我想知道是否有一个用户友好的使用指南,我和我的用户都可以参考我的搜索功能,以达到它的最大功能。

我认为理想情况下,我希望制作一个类似于Github的降价作弊表的删节版本,用于我的搜索表单,用户可以快速参考。

1 个答案:

答案 0 :(得分:3)

Sunspot使用Solr的DisMax Query Parser,它具有非常简单的查询语法。在大多数情况下,它旨在灵活地解析用户创建的查询。

DisMax识别三个特殊字符:+-"。来自文档:

  

[DisMax]旨在支持用户提供的原始输入字符串,无需特殊转义。 '+''-'字符被视为后续条款的“强制”和“禁止”修饰符。包含在平衡引号字符'"'中的文本被视为短语,任何包含奇数引号字符的查询都将被评估为好像根本没有引号字符。

还有一些其他“幕后”选项可用于调整匹配文档的相关性。例如,“最小匹配”指定必须存在的“可选”字段(即,不以-+为前缀)的数量或比例。以及在特定字段中增加术语匹配的选项,或者彼此非常接近的术语匹配,等等。

在太阳黑子中,这些都暴露在options方法的fulltext参数中,或者作为提供给该方法的块中的方法。