You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ca...@apache.org on 2018/11/06 02:57:16 UTC
svn commit: r1845865 -
/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
Author: catholicon
Date: Tue Nov 6 02:57:16 2018
New Revision: 1845865
URL: http://svn.apache.org/viewvc?rev=1845865&view=rev
Log:
OAK-7613: Taking more time for iterating row of query Result which contain Facets
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java?rev=1845865&r1=1845864&r2=1845865&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java Tue Nov 6 02:57:16 2018
@@ -251,6 +251,7 @@ public class LucenePropertyIndex extends
private boolean noDocs = false;
private IndexSearcher indexSearcher;
private int indexNodeId = -1;
+ private LuceneFacetProvider facetProvider = null;
@Override
protected FulltextResultRow computeNext() {
@@ -261,7 +262,8 @@ public class LucenePropertyIndex extends
return endOfData();
}
- private FulltextResultRow convertToRow(ScoreDoc doc, IndexSearcher searcher, Map<String, String> excerpts, Facets facets,
+ private FulltextResultRow convertToRow(ScoreDoc doc, IndexSearcher searcher, Map<String, String> excerpts,
+ LuceneFacetProvider facetProvider,
String explanation) throws IOException {
IndexReader reader = searcher.getIndexReader();
//TODO Look into usage of field cache for retrieving the path
@@ -293,7 +295,7 @@ public class LucenePropertyIndex extends
boolean shouldIncludeForHierarchy = shouldInclude(path, plan);
LOG.trace("Matched path {}; shouldIncludeForHierarchy: {}", path, shouldIncludeForHierarchy);
return shouldIncludeForHierarchy? new FulltextResultRow(path, doc.score, excerpts,
- new LuceneFacetProvider(facets), explanation)
+ facetProvider, explanation)
: null;
}
return null;
@@ -347,8 +349,12 @@ public class LucenePropertyIndex extends
nextBatchSize = (int) Math.min(nextBatchSize * 2L, 100000);
long f = PERF_LOGGER.start();
- Facets facets = FacetHelper.getFacets(searcher, query, docs, plan, indexNode.getDefinition().isSecureFacets());
- PERF_LOGGER.end(f, -1, "facets retrieved");
+ if (facetProvider == null) {
+ facetProvider = new LuceneFacetProvider(
+ FacetHelper.getFacets(searcher, query, docs, plan, indexNode.getDefinition().isSecureFacets())
+ );
+ PERF_LOGGER.end(f, -1, "facets retrieved");
+ }
Set<String> excerptFields = Sets.newHashSet();
for (PropertyRestriction pr : filter.getPropertyRestrictions()) {
@@ -384,7 +390,7 @@ public class LucenePropertyIndex extends
explanation = searcher.explain(query, doc.doc).toString();
}
- FulltextResultRow row = convertToRow(doc, searcher, excerpts, facets, explanation);
+ FulltextResultRow row = convertToRow(doc, searcher, excerpts, facetProvider, explanation);
if (row != null) {
queue.add(row);
}