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 ca...@apache.org on 2019/02/12 13:46:18 UTC
svn commit: r1853435 - in /jackrabbit/oak/trunk/oak-lucene/src:
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
Author: catholicon
Date: Tue Feb 12 13:46:18 2019
New Revision: 1853435
URL: http://svn.apache.org/viewvc?rev=1853435&view=rev
Log:
OAK-8041: IndexDefinitnionBuider should support facets and boost for property definitions
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java?rev=1853435&r1=1853434&r2=1853435&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java Tue Feb 12 13:46:18 2019
@@ -50,6 +50,7 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.api.Type.STRINGS;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEPRECATED;
import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.TYPE_LUCENE;
+import static org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants.FIELD_BOOST;
import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
public final class IndexDefinitionBuilder {
@@ -397,11 +398,21 @@ public final class IndexDefinitionBuilde
return this;
}
+ public PropertyRule facets(){
+ propTree.setProperty(FulltextIndexConstants.PROP_FACETS, true);
+ return this;
+ }
+
public PropertyRule weight(int weight){
propTree.setProperty(FulltextIndexConstants.PROP_WEIGHT, weight);
return this;
}
+ public PropertyRule boost(float boost){
+ propTree.setProperty(FIELD_BOOST, (double)boost, Type.DOUBLE);
+ return this;
+ }
+
public PropertyRule valuePattern(String valuePattern){
propTree.setProperty(IndexConstants.VALUE_PATTERN, valuePattern);
return this;
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java?rev=1853435&r1=1853434&r2=1853435&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java Tue Feb 12 13:46:18 2019
@@ -40,6 +40,8 @@ import static java.util.Arrays.asList;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEPRECATED;
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants.AGGREGATES;
+import static org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants.FIELD_BOOST;
+import static org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants.PROP_FACETS;
import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import static org.junit.Assert.*;
@@ -323,4 +325,42 @@ public class IndexDefinitionBuilderTest
state = builder.deprecated().build();
assertTrue("Index must be deprecated if marked so", state.getBoolean(INDEX_DEPRECATED));
}
+
+ @Test
+ public void boost() {
+ builder.indexRule("nt:base")
+ .property("foo1").boost(1.0f).enclosingRule()
+ .property("foo2").boost(2.0f);
+
+ NodeState state = builder.build();
+
+ NodeState foo1 = NodeStateUtils.getNode(state, "indexRules/nt:base/properties/foo1");
+ assertTrue(foo1.exists());
+ assertEquals("Incorrectly set boost",
+ 1.0f, foo1.getProperty(FIELD_BOOST).getValue(Type.DOUBLE).floatValue(), 0.0001);
+
+ NodeState foo2 = NodeStateUtils.getNode(state, "indexRules/nt:base/properties/foo2");
+ assertTrue(foo2.exists());
+ assertEquals("Incorrectly set boost",
+ 2.0f, foo2.getProperty(FIELD_BOOST).getValue(Type.DOUBLE).floatValue(), 0.0001);
+ }
+
+ @Test
+ public void facets() {
+ builder.indexRule("nt:base")
+ .property("foo1").facets().enclosingRule()
+ .property("foo2").propertyIndex();
+
+ NodeState state = builder.build();
+
+ NodeState foo1 = NodeStateUtils.getNode(state, "indexRules/nt:base/properties/foo1");
+ assertTrue(foo1.exists());
+ assertTrue("Incorrectly set facets property",
+ foo1.getBoolean(PROP_FACETS));
+
+ NodeState foo2 = NodeStateUtils.getNode(state, "indexRules/nt:base/properties/foo2");
+ assertTrue(foo2.exists());
+ assertFalse("Incorrectly existing facets property",
+ foo2.hasProperty(PROP_FACETS));
+ }
}
\ No newline at end of file