Author: catholicon
Date: Tue Dec 15 22:27:23 2015
New Revision: 1720259
URL: http://svn.apache.org/viewvc?rev=1720259&view=rev
Log:
OAK-3789: Index definition for properties should allow "not creating any
fields" for that property
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java?rev=1720259&r1=1720258&r2=1720259&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
Tue Dec 15 22:27:23 2015
@@ -139,6 +139,8 @@ public interface LuceneIndexConstants {
String PROP_ORDERED = "ordered";
+ String PROP_SKIP_DEFAULT_INDEXING = "skipDefaultIndexing";
+
String PROP_SCORER_PROVIDER = "scorerProviderName";
/**
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java?rev=1720259&r1=1720258&r2=1720259&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
Tue Dec 15 22:27:23 2015
@@ -484,41 +484,43 @@ public class LuceneIndexEditor implement
String pname,
PropertyDefinition pd) {
boolean includeTypeForFullText =
indexingRule.includePropertyType(property.getType().tag());
- if (Type.BINARY.tag() == property.getType().tag()
- && includeTypeForFullText) {
- fields.addAll(newBinary(property, state, null, path + "@" +
pname));
- return true;
- } else {
- boolean dirty = false;
- if (pd.propertyIndex &&
pd.includePropertyType(property.getType().tag())){
- dirty |= addTypedFields(fields, property, pname);
- }
-
- if (pd.fulltextEnabled() && includeTypeForFullText) {
- for (String value : property.getValue(Type.STRINGS)) {
- if (pd.analyzed &&
pd.includePropertyType(property.getType().tag())) {
- String analyzedPropName =
constructAnalyzedPropertyName(pname);
- fields.add(newPropertyField(analyzedPropName, value,
!pd.skipTokenization(pname), pd.stored));
- }
-
- if (pd.useInSuggest) {
- fields.add(FieldFactory.newSuggestField(value));
- }
-
- if (pd.useInSpellcheck) {
- fields.add(newPropertyField(FieldNames.SPELLCHECK,
value, true, false));
- }
+ boolean dirty = false;
+ if (!pd.skipDefaultIndexing) {
+ if (Type.BINARY.tag() == property.getType().tag()
+ && includeTypeForFullText) {
+ fields.addAll(newBinary(property, state, null, path + "@" +
pname));
+ dirty = true;
+ } else {
+ if (pd.propertyIndex &&
pd.includePropertyType(property.getType().tag())) {
+ dirty |= addTypedFields(fields, property, pname);
+ }
- if (pd.nodeScopeIndex) {
- Field field = newFulltextField(value);
- fields.add(field);
+ if (pd.fulltextEnabled() && includeTypeForFullText) {
+ for (String value : property.getValue(Type.STRINGS)) {
+ if (pd.analyzed &&
pd.includePropertyType(property.getType().tag())) {
+ String analyzedPropName =
constructAnalyzedPropertyName(pname);
+ fields.add(newPropertyField(analyzedPropName,
value, !pd.skipTokenization(pname), pd.stored));
+ }
+
+ if (pd.useInSuggest) {
+ fields.add(FieldFactory.newSuggestField(value));
+ }
+
+ if (pd.useInSpellcheck) {
+ fields.add(newPropertyField(FieldNames.SPELLCHECK,
value, true, false));
+ }
+
+ if (pd.nodeScopeIndex) {
+ Field field = newFulltextField(value);
+ fields.add(field);
+ }
+ dirty = true;
}
- dirty = true;
}
}
- return dirty;
}
+ return dirty;
}
private String constructAnalyzedPropertyName(String pname) {
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java?rev=1720259&r1=1720258&r2=1720259&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
Tue Dec 15 22:27:23 2015
@@ -64,6 +64,8 @@ class PropertyDefinition {
final boolean index;
+ final boolean skipDefaultIndexing;
+
final boolean stored;
final boolean nodeScopeIndex;
@@ -105,6 +107,7 @@ class PropertyDefinition {
//By default if a property is defined it is indexed
this.index = getOptionalValue(defn, LuceneIndexConstants.PROP_INDEX,
true);
+ this.skipDefaultIndexing = getOptionalValue(defn,
LuceneIndexConstants.PROP_SKIP_DEFAULT_INDEXING, false);
this.stored = getOptionalValueIfIndexed(defn,
LuceneIndexConstants.PROP_USE_IN_EXCERPT, false);
this.nodeScopeIndex = getOptionalValueIfIndexed(defn,
LuceneIndexConstants.PROP_NODE_SCOPE_INDEX, false);