module Elasticsearch::Persistence::QueryCache
Public Instance Methods
cache_query(query, klass) { || ... }
click to toggle source
# File lib/elasticsearch/persistence/query_cache.rb, line 38 def cache_query(query, klass) cache_key = sha(query) Elasticsearch::Persistence.force_cache result = if store.exist?(cache_key) && Elasticsearch::Persistence.force_cache ActiveSupport::Notifications.instrument "cache.query.elasticsearch", name: klass.name, query: query store.fetch cache_key else res = [] ActiveSupport::Notifications.instrument "query.elasticsearch", name: klass.name, query: query do res = yield end store.write(cache_key, res) if Elasticsearch::Persistence.force_cache res end result.dup end
store()
click to toggle source
# File lib/elasticsearch/persistence/query_cache.rb, line 34 def store @query_cache ||= Elasticsearch::Persistence.setup_store! end
Private Instance Methods
sha(str)
click to toggle source
# File lib/elasticsearch/persistence/query_cache.rb, line 63 def sha(str) Digest::SHA256.new.hexdigest(str) end