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 ch...@apache.org on 2014/10/20 14:22:03 UTC

svn commit: r1633123 - /jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java

Author: chetanm
Date: Mon Oct 20 12:22:03 2014
New Revision: 1633123

URL: http://svn.apache.org/r1633123
Log:
OAK-2005 - Use separate Lucene index for performing property related queries

-- Adding a test method which updates Lucene index and then dumps directory content after every update

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java?rev=1633123&r1=1633122&r2=1633123&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java Mon Oct 20 12:22:03 2014
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 
+import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EditorHook;
@@ -30,6 +31,7 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.test.ISO8601;
 import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
@@ -38,6 +40,7 @@ import org.apache.lucene.search.NumericR
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.store.Directory;
 import org.junit.After;
 import org.junit.Test;
 
@@ -149,11 +152,37 @@ public class LuceneIndexEditorTest {
         assertEquals(2, getSearcher().getIndexReader().numDocs());
     }
 
+    //@Test
+    public void checkLuceneIndexFileUpdates() throws Exception{
+        NodeBuilder index = builder.child(INDEX_DEFINITIONS_NAME);
+        NodeBuilder nb = newLuceneIndexDefinition(index, "lucene",
+                of(TYPENAME_STRING));
+        nb.setProperty(LuceneIndexConstants.FULL_TEXT_ENABLED, false);
+        nb.setProperty(createProperty(INCLUDE_PROPERTY_NAMES, of("foo" , "bar", "baz"), STRINGS));
+
+        NodeState before = builder.getNodeState();
+        builder.child("test").setProperty("foo", "fox is jumping");
+        before = commitAndDump(before);
+
+        builder.child("test2").setProperty("bar", "ship is sinking");
+        before = commitAndDump(before);
+
+        builder.child("test3").setProperty("baz", "horn is blowing");
+        before = commitAndDump(before);
+
+        builder.child("test2").remove();
+        before = commitAndDump(before);
+
+        builder.child("test2").setProperty("bar", "ship is back again");
+        before = commitAndDump(before);
+    }
+
     @After
     public void releaseIndexNode(){
         if(indexNode != null){
             indexNode.release();
         }
+        indexNode = null;
     }
 
     private String query(String query) throws IOException, ParseException {
@@ -179,6 +208,24 @@ public class LuceneIndexEditorTest {
         return indexNode.getSearcher();
     }
 
+    private NodeState commitAndDump(NodeState before) throws CommitFailedException, IOException {
+        NodeState after = builder.getNodeState();
+        NodeState indexed = HOOK.processCommit(before, after, CommitInfo.EMPTY);
+        tracker.update(indexed);
+        dumpIndexDir();
+        return after;
+    }
+
+    private void dumpIndexDir() throws IOException {
+        Directory dir = ((DirectoryReader)getSearcher().getIndexReader()).directory();
+
+        System.out.println("================");
+        for (String file : dir.listAll()){
+            System.out.printf("%s - %d %n", file, dir.fileLength(file));
+        }
+        releaseIndexNode();
+    }
+
     static Calendar createCal(String dt) throws java.text.ParseException {
         SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
         Calendar cal = Calendar.getInstance();