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
|