You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2016/08/11 07:18:32 UTC
lucene-solr:branch_6x: SOLR-8995: Use lambdas for CacheRegenerator
implementations
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x 4bd7d7fad -> 8412af551
SOLR-8995: Use lambdas for CacheRegenerator implementations
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/8412af55
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/8412af55
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/8412af55
Branch: refs/heads/branch_6x
Commit: 8412af55136787da3e48b832d1762d68f4aa15de
Parents: 4bd7d7f
Author: Noble Paul <no...@apache.org>
Authored: Thu Aug 11 12:48:21 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Thu Aug 11 12:48:21 2016 +0530
----------------------------------------------------------------------
.../apache/solr/search/CacheRegenerator.java | 2 +-
.../apache/solr/search/SolrIndexSearcher.java | 78 +++++++++-----------
2 files changed, 34 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8412af55/solr/core/src/java/org/apache/solr/search/CacheRegenerator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/CacheRegenerator.java b/solr/core/src/java/org/apache/solr/search/CacheRegenerator.java
index 4daaa52..2325bea 100644
--- a/solr/core/src/java/org/apache/solr/search/CacheRegenerator.java
+++ b/solr/core/src/java/org/apache/solr/search/CacheRegenerator.java
@@ -38,5 +38,5 @@ public interface CacheRegenerator {
* @param oldVal the old value of the cache item
* @return true to continue with autowarming, false to stop
*/
- public boolean regenerateItem(SolrIndexSearcher newSearcher, SolrCache newCache, SolrCache oldCache, Object oldKey, Object oldVal) throws IOException;
+ boolean regenerateItem(SolrIndexSearcher newSearcher, SolrCache newCache, SolrCache oldCache, Object oldKey, Object oldVal) throws IOException;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8412af55/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index 0f480c6..1458b2e 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -529,62 +529,50 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
//
public static void initRegenerators(SolrConfig solrConfig) {
if (solrConfig.fieldValueCacheConfig != null && solrConfig.fieldValueCacheConfig.getRegenerator() == null) {
- solrConfig.fieldValueCacheConfig.setRegenerator(new CacheRegenerator() {
- @Override
- public boolean regenerateItem(SolrIndexSearcher newSearcher, SolrCache newCache, SolrCache oldCache,
- Object oldKey, Object oldVal) throws IOException {
- if (oldVal instanceof UnInvertedField) {
- UnInvertedField.getUnInvertedField((String) oldKey, newSearcher);
- }
- return true;
+ solrConfig.fieldValueCacheConfig.setRegenerator((newSearcher, newCache, oldCache, oldKey, oldVal) -> {
+ if (oldVal instanceof UnInvertedField) {
+ UnInvertedField.getUnInvertedField((String) oldKey, newSearcher);
}
+ return true;
});
}
if (solrConfig.filterCacheConfig != null && solrConfig.filterCacheConfig.getRegenerator() == null) {
- solrConfig.filterCacheConfig.setRegenerator(new CacheRegenerator() {
- @Override
- public boolean regenerateItem(SolrIndexSearcher newSearcher, SolrCache newCache, SolrCache oldCache,
- Object oldKey, Object oldVal) throws IOException {
- newSearcher.cacheDocSet((Query) oldKey, null, false);
- return true;
- }
+ solrConfig.filterCacheConfig.setRegenerator((newSearcher, newCache, oldCache, oldKey, oldVal) -> {
+ newSearcher.cacheDocSet((Query) oldKey, null, false);
+ return true;
});
}
if (solrConfig.queryResultCacheConfig != null && solrConfig.queryResultCacheConfig.getRegenerator() == null) {
final int queryResultWindowSize = solrConfig.queryResultWindowSize;
- solrConfig.queryResultCacheConfig.setRegenerator(new CacheRegenerator() {
- @Override
- public boolean regenerateItem(SolrIndexSearcher newSearcher, SolrCache newCache, SolrCache oldCache,
- Object oldKey, Object oldVal) throws IOException {
- QueryResultKey key = (QueryResultKey) oldKey;
- int nDocs = 1;
- // request 1 doc and let caching round up to the next window size...
- // unless the window size is <=1, in which case we will pick
- // the minimum of the number of documents requested last time and
- // a reasonable number such as 40.
- // TODO: make more configurable later...
-
- if (queryResultWindowSize <= 1) {
- DocList oldList = (DocList) oldVal;
- int oldnDocs = oldList.offset() + oldList.size();
- // 40 has factors of 2,4,5,10,20
- nDocs = Math.min(oldnDocs, 40);
- }
-
- int flags = NO_CHECK_QCACHE | key.nc_flags;
- QueryCommand qc = new QueryCommand();
- qc.setQuery(key.query)
- .setFilterList(key.filters)
- .setSort(key.sort)
- .setLen(nDocs)
- .setSupersetMaxDoc(nDocs)
- .setFlags(flags);
- QueryResult qr = new QueryResult();
- newSearcher.getDocListC(qr, qc);
- return true;
+ solrConfig.queryResultCacheConfig.setRegenerator((newSearcher, newCache, oldCache, oldKey, oldVal) -> {
+ QueryResultKey key = (QueryResultKey) oldKey;
+ int nDocs = 1;
+ // request 1 doc and let caching round up to the next window size...
+ // unless the window size is <=1, in which case we will pick
+ // the minimum of the number of documents requested last time and
+ // a reasonable number such as 40.
+ // TODO: make more configurable later...
+
+ if (queryResultWindowSize <= 1) {
+ DocList oldList = (DocList) oldVal;
+ int oldnDocs = oldList.offset() + oldList.size();
+ // 40 has factors of 2,4,5,10,20
+ nDocs = Math.min(oldnDocs, 40);
}
+
+ int flags = NO_CHECK_QCACHE | key.nc_flags;
+ QueryCommand qc = new QueryCommand();
+ qc.setQuery(key.query)
+ .setFilterList(key.filters)
+ .setSort(key.sort)
+ .setLen(nDocs)
+ .setSupersetMaxDoc(nDocs)
+ .setFlags(flags);
+ QueryResult qr = new QueryResult();
+ newSearcher.getDocListC(qr, qc);
+ return true;
});
}
}