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,


Reply via email to