module RediSearch::RediSearchable::RediSearchClassMethods

Public Instance Methods

redisearch(query, load: true, **options) click to toggle source
# File lib/redisearch-rails/redisearchable/class_methods.rb, line 51
def redisearch(query, load: true, **options)
  result = redisearch_index.search(query, options.deep_merge(nocontent: true))
  result.shift # remove the first element (count)
  result.map! { |elem| elem.sub("#{redisearch_index.name}_", '')}
  return result unless load
  self.find(result)
end
redisearch_count(query = '*') click to toggle source
# File lib/redisearch-rails/redisearchable/class_methods.rb, line 59
def redisearch_count(query = '*')
  redisearch_index.search(query, limit: [0, 0]).shift
end
reindex(recreate: false, mode: :inline, **options) click to toggle source

Reindex all

# File lib/redisearch-rails/redisearchable/class_methods.rb, line 64
def reindex(recreate: false, mode: :inline, **options)
  index = redisearch_index

  index.drop if recreate
  index.create unless index.exists?

  RediSearch::BatchesIndexer.new(self).reindex(mode: mode)
end