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 th...@apache.org on 2014/09/25 15:37:05 UTC
svn commit: r1627543 -
/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
Author: thomasm
Date: Thu Sep 25 13:37:05 2014
New Revision: 1627543
URL: http://svn.apache.org/r1627543
Log:
OAK-2133 Lucene: improved batching and logging
Modified:
jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java?rev=1627543&r1=1627542&r2=1627543&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java Thu Sep 25 13:37:05 2014
@@ -302,6 +302,7 @@ public class LuceneIndex implements Full
private final Deque<LuceneResultRow> queue = Queues.newArrayDeque();
private final Set<String> seenPaths = Sets.newHashSet();
private ScoreDoc lastDoc;
+ private int nextBatchSize = LUCENE_QUERY_BATCH_SIZE;
@Override
protected LuceneResultRow computeNext() {
@@ -355,11 +356,17 @@ public class LuceneIndex implements Full
Query query = getQuery(filter, searcher.getIndexReader(),
nonFullTextConstraints, analyzer, indexNode.getDefinition());
TopDocs docs;
+ long time = System.currentTimeMillis();
if (lastDoc != null) {
- docs = searcher.searchAfter(lastDoc, query, LUCENE_QUERY_BATCH_SIZE);
+ LOG.debug("loading the next {} entries for query {}", nextBatchSize, query);
+ docs = searcher.searchAfter(lastDoc, query, nextBatchSize);
} else {
- docs = searcher.search(query, LUCENE_QUERY_BATCH_SIZE);
+ LOG.debug("loading the first {} entries for query {}", nextBatchSize, query);
+ docs = searcher.search(query, nextBatchSize);
}
+ time = System.currentTimeMillis() - time;
+ LOG.debug("... took {} ms", time);
+ nextBatchSize = (int) Math.min(nextBatchSize * 2L, 100000);
for (ScoreDoc doc : docs.scoreDocs) {
LuceneResultRow row = convertToRow(doc, searcher);