如果您发现此插件有用,请考虑捐款以表示您的支持!
www.paypal.com/cgi-bin/webscr?cmd=_send-money
贝宝地址:[email protected]
该插件允许将布尔值的全文搜索添加到任何没有依赖性和最小设置的铁轨应用程序中。
宝石'acts_as_indexed'
运行bundle install 。完毕。
./script/plugin install install git://github.com/dougal/acts_as_indexed.git
如果您没有安装git,但仍然需要插件,则可以从github页面(github.com/dougal/acts_as_indexed)下载插件,并将其拆开到铁路应用程序的vendor/plugins目录中。
当升级到新版本的ACTS_AS_INDEXED时,建议您删除索引目录并允许其重建。
将acts_as_indexed添加到您要索引的任何模型的顶部,以及您希望被索引的字段列表。
班级<activerecord ::基础 acts_as_indexed:fields => [:title,:Body] ... 结尾
这些字段不限于模型字段,而是当前模型的任何实例方法。
班级用户<activerecord :: base
acts_as_indexed:fields => [:地址,:fullName]
def fullname
self.firstname +'' + self.lastName
结尾
...
结尾可以在ACTS_AS_INDEXED方法调用中添加其他配置部分中的任何配置选项。这些将覆盖任何默认值或全局配置。
您可以指定在项目索引之前需要评估为true的PROC。如果您只希望包含具有特定状态的项目,这将很有用。 PROC通过当前对象的实例,因此您可以对此进行测试。
例如,如果您的可见列是错误的,则如果帖子被隐藏,则可以看到该列,则可以通过执行以下操作过滤索引:
班级<activerecord ::基础
acts_as_indexed:fields => [:title,:body],:if => proc.new {| post |邮政。可见吗? }
...
结尾要搜索最相关的匹配项,请在模型上调用find_with_index方法,将查询作为第一个参数。可选ids_only参数设置为TRUE,将仅返回任何匹配记录的ID。
#返回相关性订购的帖子对象的数组。 my_search_results = post 。 find_with_index ( '我的搜索查询' ) #将任何ActivereCord的任何查找选项传递给搜索。 my_search_results = post 。 find_with_index ( '我的搜索查询' ,{ :limit => 10 }) #返回前10个匹配项。 #返回相关性订购的ID数组。 my_search_results = post 。 find_with_index ( '我的搜索查询' ,{},{ :ids_only => true }) #=> [12,19,33 ...
如果结果的相关性并不重要,请在模型上调用名为范围的with_query ,将查询作为参数传递。
#返回帖子对象的数组。 my_search_results = post 。使用_query ( '我的搜索查询' ) #使用任意数量的ActivereCord方法和名称_Scopes链接它。 my_search_results = post 。民众。使用_query ( '我的搜索查询' )。查找( :all , :limit => 10 ) #返回公共的前10场比赛。
支持以下查询运营商:
这是默认选项。 “猫狗”会找到与“猫”和“狗”相匹配的唱片。
“猫狗”会找到与“猫”相匹配的唱片,而不是“狗”
“猫 +我”会找到与“猫”和“ me”匹配的记录,即使“我”小于min_word_size
引用的术语匹配为短语。 '“猫狗”会找到与整个短语相匹配的记录。引用的条款可以先于非运营商; 'cat-“大狗”等。引用的术语可以包含比min_word_size短的单词。
以 ^开头的术语将匹配包含从该术语开始的单词的记录。 '^cat'会找到包含“猫”,“弹药”,“毛毛虫”等的匹配项。
引用的术语以 ^匹配以本短语开头的任何短语。 '^“猫D”将找到与整个短语“猫狗”和“猫晚餐”相匹配的记录。这种类型的搜索对于自动完成输入很有用。
分页是通过paginate_search方法支持的,其第一个参数是搜索查询,其后是所有标准will_paginate参数。
@Images =图像。 paginate_search ( '女孩' , :page => 1 , :per_page => 5 )
由于with_query是一个命名范围,因此可以以正常方式使用WillPaginate。
@Images =图像。与_query ( 'Girl' )。 paginate ( :page => 1 , :per_page => 5 )
可以在环境文件或初始化器中提供配置块。显示更改最小单词大小的示例:
actsindexeced 。配置做|配置| config 。 min_word_size = 3 #根据需要的更多配置... 结尾
可以在lib/acts_as_indexed/configuration.rb中找到可用配置选项的完整摘要
充当索引支持Heroku开箱即用。该索引是在TMP目录中创建的,这是Heroku Dyno文件系统中唯一可写的部分。请阅读有关其文件系统的Heroku文档(Devcenter.heroku.com/articles/Read-Only-filesystem)。
在线查看RDOC文档。
以上所有都是最受欢迎的。 [email protected]
非常感谢该图书馆的所有贡献者。没有它们,就不会发生许多错误修正和功能。
Douglas F Shearer -Douglasfshearer.com
Thomas Pomfret
菲利普·阿恩特(Philip Arndt)
费尔南达·洛佩斯(Fernanda Lopes)
亚历克斯·科尔斯(Alex Coles)
Myles Eftos
爱德华·安德森
弗洛伦特·吉利克斯(Florent Guilleux)
本·安德森
Theron Toomey
UģIS臭氧
加布里埃尔·纳米曼(Gabriel Namiman)
罗马·萨马利奥夫(Roman Samoilov)
大卫·特纳
帕斯卡·赫尼(Pascal Hurni)
瑞安·科普夫(Ryan Kopf)
目前,ACTS_AS_INDEXED仅使用以下方式使用Unicode字符:
https://gist.github.com/193903bb4e0d6e5debe1
我已经重写了令牌化过程,以便将来更轻松地处理此操作。