如果您發現此插件有用,請考慮捐款以表示您的支持!
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
我已經重寫了令牌化過程,以便將來更輕鬆地處理此操作。