Author: chetanm
Date: Wed Sep 27 05:20:01 2017
New Revision: 1809804
URL: http://svn.apache.org/viewvc?rev=1809804&view=rev
Log:
OAK-6726 - Use addDocument instead of updateDocument while reindexing with
Lucene
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriterTest.java
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java?rev=1809804&r1=1809803&r2=1809804&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java
Wed Sep 27 05:20:01 2017
@@ -79,7 +79,11 @@ class DefaultIndexWriter implements Luce
@Override
public void updateDocument(String path, Iterable<? extends IndexableField>
doc) throws IOException {
- getWriter().updateDocument(newPathTerm(path), doc);
+ if (reindex) {
+ getWriter().addDocument(doc);
+ } else {
+ getWriter().updateDocument(newPathTerm(path), doc);
+ }
indexUpdated = true;
}
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriterTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriterTest.java?rev=1809804&r1=1809803&r2=1809804&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriterTest.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriterTest.java
Wed Sep 27 05:20:01 2017
@@ -114,6 +114,34 @@ public class DefaultIndexWriterTest {
assertEquals(w.getConfig().getRAMBufferSizeMB(), 42, 0);
}
+ @Test
+ public void useAddForReindex() throws Exception{
+ IndexDefinition defn = new IndexDefinition(root,
builder.getNodeState(), "/foo");
+ DefaultIndexWriter writer = createWriter(defn, true);
+
+ Document document = new Document();
+ document.add(newPathField("/a/b"));
+
+ writer.updateDocument("/a/b", document);
+
+ assertFalse(writer.getWriter().hasDeletions());
+ writer.close(100);
+ }
+
+ @Test
+ public void useUpdateForNormalIndexing() throws Exception{
+ IndexDefinition defn = new IndexDefinition(root,
builder.getNodeState(), "/foo");
+ DefaultIndexWriter writer = createWriter(defn, false);
+
+ Document document = new Document();
+ document.add(newPathField("/a/b"));
+
+ writer.updateDocument("/a/b", document);
+
+ assertTrue(writer.getWriter().hasDeletions());
+ writer.close(100);
+ }
+
private DefaultIndexWriter createWriter(IndexDefinition defn, boolean
reindex) {
return new DefaultIndexWriter(defn, builder,
new DefaultDirectoryFactory(null, null), INDEX_DATA_CHILD_NAME,