Esta gema simplifica la integración con el módulo RedISearch (http://redisearch.io/). Este software es de calidad alfa y no tiene garantías en absoluto. Además, RedISearch aún no se publica oficialmente, por lo que las características principales pueden cambiar.
Instale Redis y RedISearch siguientes instrucciones en http://redisearch.io/quick_start/. Hasta que se liberen módulos con Redis 4, esto requiere compilar a Redis de la rama inestable de GitHub.
Agregue esta línea al archivo gem de su aplicación:
gem 'redi_search_rails'Y luego ejecutar:
$ bundle
O instálelo usted mismo como:
$ gem install redi_search_rails
Crear config/inicializadores/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 )Como identificador único (DOC_ID) para registros en Redis, esta gema usa globalid. Debe asegurarse de que sus modelos lo admitan si está utilizando ORM que no sea Activerecord.
Después de revisar el repositorio, ejecute bin/setup para instalar dependencias. Luego, ejecute rake spec para ejecutar las pruebas. También puede ejecutar bin/console para un mensaje interactivo que le permitirá experimentar. Para comprender el código, busque lib/redi_search_rails .
Para instalar esta gema en su máquina local, ejecute bundle exec rake install . Para lanzar una nueva versión, actualice el número de versión en version.rb y luego ejecute bundle exec rake release , que creará una etiqueta GIT para la versión, Push Git Commits and Tags, y empuje el archivo .gem a rubygems.org.
Probar esta gema requiere tener Redis local con el módulo RedISearch. Esto hace que sea muy difícil configurarlo con servicios como CodeShip.
Los informes de errores y las solicitudes de extracción son bienvenidas en GitHub en https://github.com/dmitrypol/redi_search_rails. Este proyecto está destinado a ser un espacio seguro y acogedor para la colaboración, y se espera que los contribuyentes se adhieran al Código de Conducta del Pacto de contribuyente.
La gema está disponible como código abierto bajo los términos de la licencia MIT.