Skip to content

Commit 22002f9

Browse files
committed
Date math in query_string caches now()
fixes #2808
1 parent a147ba5 commit 22002f9

File tree

4 files changed

+12
-68
lines changed

4 files changed

+12
-68
lines changed

src/main/java/org/apache/lucene/queryParser/QueryParserSettings.java

+5
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ public class QueryParserSettings {
6666
float tieBreaker = 0.0f;
6767
boolean useDisMax = true;
6868

69+
public boolean isCacheable() {
70+
// a hack for now :) to determine if a query string is cacheable
71+
return !queryString.contains("now");
72+
}
73+
6974
public String queryString() {
7075
return queryString;
7176
}

src/main/java/org/elasticsearch/index/cache/query/parser/QueryParserCache.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
import org.elasticsearch.index.IndexComponent;
2626

2727
/**
28-
*
28+
* The main benefit of the query parser cache is to not parse the same query string on different shards.
29+
* Less about long running query strings.
2930
*/
3031
public interface QueryParserCache extends IndexComponent, CloseableComponent {
3132

src/main/java/org/elasticsearch/index/cache/query/parser/resident/ResidentQueryParserCache.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ public class ResidentQueryParserCache extends AbstractIndexComponent implements
4949
public ResidentQueryParserCache(Index index, @IndexSettings Settings indexSettings) {
5050
super(index, indexSettings);
5151

52-
this.maxSize = indexSettings.getAsInt("index.cache.field.max_size", componentSettings.getAsInt("max_size", 100));
53-
this.expire = indexSettings.getAsTime("index.cache.field.expire", componentSettings.getAsTime("expire", null));
52+
this.maxSize = componentSettings.getAsInt("max_size", 100);
53+
this.expire = componentSettings.getAsTime("expire", null);
5454
logger.debug("using [resident] query cache with max_size [{}], expire [{}]", maxSize, expire);
5555

5656
CacheBuilder cacheBuilder = CacheBuilder.newBuilder().maximumSize(maxSize);
@@ -68,7 +68,9 @@ public Query get(QueryParserSettings queryString) {
6868

6969
@Override
7070
public void put(QueryParserSettings queryString, Query query) {
71-
cache.put(queryString, query);
71+
if (queryString.isCacheable()) {
72+
cache.put(queryString, query);
73+
}
7274
}
7375

7476
@Override

src/main/java/org/elasticsearch/index/cache/query/parser/support/AbstractJvmQueryParserCache.java

-64
This file was deleted.

0 commit comments

Comments
 (0)