
Security News
How Enterprise Security Is Adapting to AI-Accelerated Threats
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.
High performance real-time prefix search, indexes store in Redis for Rails application.
gem 'redis-search'
$ bundle install
require "redis"
require "redis-namespace"
require "redis-search"
# don't forget change namespace
redis = Redis.new(host: '127.0.0.1', port: '6379')
# We suggest you use a special db in Redis, when you need to clear all data, you can use `flushdb` command to cleanup.
redis.select(3)
# Give a special namespace as prefix for Redis key, when your have more than one project used redis-search, this config will make them work fine.
redis = Redis::Namespace.new("your_app_name:redis_search", redis: redis)
Redis::Search.configure do |config|
config.redis = redis
config.complete_max_length = 100
config.pinyin_match = true
end
Redis::Search callback event, it will to rebuild search indices when data create or update.class Post < ActiveRecord::Base
include Redis::Search
belongs_to :user
belongs_to :category
redis_search title_field: :title,
score_field: :hits,
condition_fields: [:user_id, :category_id],
ext_fields: [:category_name]
def category_name
self.category.name
end
end
class User < ActiveRecord::Base
include Redis::Search
serialize :alias_names, Array
redis_search title_field: :name,
alias_field: :alias_names,
score_field: :followers_count,
ext_fields: [:email, :tagline]
end
class SearchController < ApplicationController
# GET /search_users?q=j
def search_users
Post.prefix_match(params[:q], conditions: { user_id: 12, category_id: 4 })
end
end
Redis-Search index data to Redis from your model (pass name as CLASS environment variable).
$ rake redis_search:index:model CLASS='User'
Customize the batch size:
$ rake redis_search:index:model CLASS='User' BATCH=100
Redis-Search all index data to Redis from app/models (or use DIR environment variabl).
$ rake redis_search:index DIR=app/models
Customize the batch size:
$ rake redis_search:index DIR=app/models BATCH=100
You can run the rake command (see Rakefile) to make test. There is my performance test result.

Projects used redis-search:
FAQs
Unknown package
We found that redis-search demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.