這GEMS簡化了與Redisearch模塊(http://redisearch.io/)的集成。該軟件具有Alpha質量,並且沒有任何保證。此外,ReDisearch仍未正式發布,因此主要功能可能會改變。
在http://redisearch.io/quick_start/上安裝REDIS和REDISEARCH。在用REDIS 4釋放模塊之前,需要從GitHub的不穩定分支中編譯Redis。
將此行添加到您的應用程序的gemfile:
gem 'redi_search_rails'然後執行:
$ bundle
或自行安裝:
$ gem install redi_search_rails
創建config/initializers/redi_search_rails.rb
REDI_SEARCH = Redis . new ( host : '127.0.0.1' , port : '6379' ) class User < ApplicationRecord
include RediSearchRails
redi_search_schema name : 'TEXT' , email : 'TEXT' , age : 'NUMERIC'
end
# => to create index run in rails console
User . ft_create
# => populate index with records for all users
User . ft_add_all
# => or you can do it for specific record
User . ft_add ( User . where ( id : 1 ) )
# => search
User . ft_search ( keyword : 'keyword here' , offset : 0 , num : 10 )
# => output
[ 1 , "gid://application_name/User/unique_id" , [ "name" , "Bob" , "age" , "100" ] ]
# => format results as array of objects
User . ft_search_format ( keyword : 'keyword here' , offset : 0 , num : 10 )
# => output
[ { "id" : "gid://application_name/User/unique_id" , "name" : "Bob" , "age" : "100" } , { ... } ]
# => for autocomplete
User . ft_sugadd ( record : user , attribute : name )作為REDIS中記錄的唯一標識符(DOC_ID),該GEM使用GlobalId。如果您使用ActivereCord以外的其他ORM,則需要確保模型支持它。
檢查回購後,運行bin/setup以安裝依賴關係。然後,運行rake spec以運行測試。您還可以運行bin/console以獲得交互提示,該提示可以讓您進行實驗。要了解lib/redi_search_rails中的代碼外觀。
要將此GEM安裝到本地計算機上,請運行bundle exec rake install 。要發布新版本,請在version.rb中更新版本號,然後運行bundle exec rake release Release ,該版本將為版本創建一個git標籤,推送git consits and tags,然後將.gem文件推到rubygems.org。
測試此GEM需要使用Redisearch模塊進行本地redis。這使得很難使用Codeship之類的服務進行設置。
歡迎在https://github.com/dmitrypol/redi_search_rails上的GitHub上的錯誤報告和拉動請求。該項目旨在是一個安全,熱情的協作空間,預計貢獻者將遵守撰稿人契約的行為準則。
根據MIT許可證的條款,該寶石可作為開源。