Эти драгоценные камни упрощает интеграцию с модулем Redisearch (http://redisearch.io/). Это программное обеспечение имеет альфа -качество и предоставляется без каких -либо гарантий. Кроме того, Redisearch все еще официально не выпущен, поэтому основные функции могут измениться.
Установите Redis и Redisearch Следующие инструкции на http://redisearch.io/quick_start/. Пока модули не будут высвобождены с Redis 4, это требует компиляции Redis из нестабильной ветви от GitHub.
Добавьте эту строку в 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 )Как уникальный идентификатор (doc_id) для записей в Redis, этот драгоценный камень использует Globalid. Вы должны убедиться, что ваши модели поддерживают его, если вы используете ORM, кроме Activerecord.
После проверки репо, запустите bin/setup для установки зависимостей. Затем запустите rake spec , чтобы запустить тесты. Вы также можете запустить bin/console для интерактивной подсказки, которая позволит вам экспериментировать. Чтобы понять код, посмотрите в lib/redi_search_rails .
Чтобы установить этот драгоценный камень на локальную машину, запустите bundle exec rake install . bundle exec rake release выпустить новую версию, обновите номер версии .gem version.rb .
Тестирование этого драгоценного камня требует наличия локальных Redis с модулем Redisearch. Это очень трудно настроить его с такими услугами, как Codeship.
Отчеты об ошибках и запросы на привлечение приветствуются на GitHub по адресу https://github.com/dmitrypol/redi_search_rails. Этот проект предназначен для безопасного, гостеприимного пространства для сотрудничества, и ожидается, что участники будут придерживаться Кодекса поведения завета участника.
Драгоценный камень доступен в качестве открытого исходного кода в соответствии с условиями лицензии MIT.