38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 
     | 
    
      # 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
     |