Author: chetanm
Date: Thu Dec 8 05:17:43 2016
New Revision: 1773177
URL: http://svn.apache.org/viewvc?rev=1773177&view=rev
Log:
OAK-4400 - Correlate index with the index definition used to build it
Add system property to disable this feature
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java?rev=1773177&r1=1773176&r2=1773177&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
Thu Dec 8 05:17:43 2016
@@ -58,6 +58,16 @@ public class LuceneIndexEditorContext {
private static final PerfLogger PERF_LOGGER =
new
PerfLogger(LoggerFactory.getLogger(LuceneIndexEditorContext.class.getName() +
".perf"));
+ private static final boolean disableStoredIndexDefinition =
+ Boolean.getBoolean("oak.lucene.disableStoredIndexDefinition");
+
+ static {
+ if (disableStoredIndexDefinition){
+ log.info("Feature to ensure that index definition match the index
state is set to be disabled. Change in " +
+ "index definition would now effect query plans and might
lead to inconsistent results");
+ }
+ }
+
private FacetsConfig facetsConfig;
private static final Parser defaultParser = createDefaultParser();
@@ -191,7 +201,9 @@ public class LuceneIndexEditorContext {
//as index definition does not get modified as part of IndexUpdate run
in most case we rely on base state
//For case where index definition is rewritten there we get fresh state
NodeState defnState = indexDefnRewritten ?
definitionBuilder.getNodeState() : definitionBuilder.getBaseState();
- definitionBuilder.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE,
NodeStateCloner.cloneVisibleState(defnState));
+ if (!disableStoredIndexDefinition) {
+
definitionBuilder.setChildNode(IndexDefinition.INDEX_DEFINITION_NODE,
NodeStateCloner.cloneVisibleState(defnState));
+ }
String uid = configureUniqueId(definitionBuilder);
//Refresh the index definition based on update builder state