Esta jóia simplifica a integração com o Redisearch Module (http://redisearch.io/). Este software é de qualidade alfa e não tem garantias. Além disso, o RedisEarch ainda não é lançado oficialmente para que os principais recursos possam mudar.
Instale as instruções Redis e Redisearch em http://redisearch.io/quick_start/. Até que os módulos sejam lançados com o Redis 4, isso requer compilar Redis de ramo instável do GitHub.
Adicione esta linha ao GemFile do seu aplicativo:
gem 'redi_search_rails'E depois execute:
$ bundle
Ou instale você mesmo como:
$ gem install redi_search_rails
Crie 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 )Como identificador exclusivo (doc_id) para registros em redis, essa jóia usa globalID. Você precisa garantir que seus modelos o suporte se você estiver usando o ORM que não seja o ActiveRecord.
Depois de verificar o repositório, execute bin/setup para instalar dependências. Em seguida, execute rake spec para executar os testes. Você também pode executar bin/console para um prompt interativo que permitirá experimentar. Para entender a aparência do código em lib/redi_search_rails .
Para instalar esta gema na sua máquina local, execute bundle exec rake install . Para lançar uma nova versão, atualize o número da versão no version.rb e, em seguida, execute bundle exec rake release , que criará uma tag git para a versão, push git cometa e tags e pressionará o arquivo .gem para rubygems.org.
Testar esta gem requer ter Redis local com o módulo Redisearch. Isso torna muito difícil configurá -lo com serviços como o Codeship.
Relatórios de bug e solicitações de tração são bem -vindos no github em https://github.com/dmitrypol/redi_search_rails. Este projeto deve ser um espaço seguro e acolhedor para a colaboração, e espera -se que os colaboradores sigam o Código de Conduta do Covenant colaborador.
A GEM está disponível como código aberto nos termos da licença do MIT.