这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 ,该版本将为版本创建一个git标签,推送git consits and tags,然后将.gem文件推到rubygems.org。
测试此GEM需要使用Redisearch模块进行本地redis。这使得很难使用Codeship之类的服务进行设置。
欢迎在https://github.com/dmitrypol/redi_search_rails上的GitHub上的错误报告和拉动请求。该项目旨在是一个安全,热情的协作空间,预计贡献者将遵守撰稿人契约的行为准则。
根据MIT许可证的条款,该宝石可作为开源。