use of org.apache.jackrabbit.oak.plugins.index.lucene.IndexPlanner.PropertyIndexResult in project jackrabbit-oak by apache.
the class IndexPlannerTest method syncIndex_NotUsedWithSort.
@Test
public void syncIndex_NotUsedWithSort() throws Exception {
IndexDefinitionBuilder defnb = new IndexDefinitionBuilder();
defnb.indexRule("nt:base").property("foo").propertyIndex().sync();
defnb.indexRule("nt:base").property("bar").propertyIndex().ordered();
IndexDefinition defn = new IndexDefinition(root, defnb.build(), "/foo");
IndexNode node = createIndexNode(defn, 100);
FilterImpl filter = createFilter("nt:base");
filter.restrictProperty("foo", Operator.EQUAL, PropertyValues.newString("bar"));
IndexPlanner planner = new IndexPlanner(node, "/foo", filter, ImmutableList.of(new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
QueryIndex.IndexPlan plan = planner.getPlan();
assertNotNull(plan);
assertEquals(documentsPerValue(100), plan.getEstimatedEntryCount());
PropertyIndexResult hr = pr(plan).getPropertyIndexResult();
assertNull(hr);
}
use of org.apache.jackrabbit.oak.plugins.index.lucene.IndexPlanner.PropertyIndexResult in project jackrabbit-oak by apache.
the class IndexPlannerTest method syncIndex_uniqueIndex.
// ~------------------------------< sync indexes >
@Test
public void syncIndex_uniqueIndex() throws Exception {
IndexDefinitionBuilder defnb = new IndexDefinitionBuilder();
defnb.indexRule("nt:base").property("foo").propertyIndex().unique();
IndexDefinition defn = new IndexDefinition(root, defnb.build(), "/foo");
IndexNode node = createIndexNode(defn, 100);
FilterImpl filter = createFilter("nt:base");
filter.restrictProperty("foo", Operator.EQUAL, PropertyValues.newString("bar"));
IndexPlanner planner = new IndexPlanner(node, "/foo", filter, Collections.<OrderEntry>emptyList());
QueryIndex.IndexPlan plan = planner.getPlan();
assertNotNull(plan);
assertEquals(1, plan.getEstimatedEntryCount());
PropertyIndexResult hr = pr(plan).getPropertyIndexResult();
assertNotNull(hr);
assertEquals("foo", hr.propertyName);
assertEquals("foo", hr.pr.propertyName);
}
use of org.apache.jackrabbit.oak.plugins.index.lucene.IndexPlanner.PropertyIndexResult in project jackrabbit-oak by apache.
the class IndexPlannerTest method syncIndex_nonUnique.
@Test
public void syncIndex_nonUnique() throws Exception {
IndexDefinitionBuilder defnb = new IndexDefinitionBuilder();
defnb.indexRule("nt:base").property("foo").propertyIndex().sync();
IndexDefinition defn = new IndexDefinition(root, defnb.build(), "/foo");
IndexNode node = createIndexNode(defn, 100);
FilterImpl filter = createFilter("nt:base");
filter.restrictProperty("foo", Operator.EQUAL, PropertyValues.newString("bar"));
IndexPlanner planner = new IndexPlanner(node, "/foo", filter, Collections.<OrderEntry>emptyList());
QueryIndex.IndexPlan plan = planner.getPlan();
assertNotNull(plan);
assertEquals(documentsPerValue(100), plan.getEstimatedEntryCount());
PropertyIndexResult hr = pr(plan).getPropertyIndexResult();
assertNotNull(hr);
assertEquals("foo", hr.propertyName);
assertEquals("foo", hr.pr.propertyName);
}
use of org.apache.jackrabbit.oak.plugins.index.lucene.IndexPlanner.PropertyIndexResult in project jackrabbit-oak by apache.
the class IndexPlannerTest method syncIndex_NotUsedWithFulltext.
@Test
public void syncIndex_NotUsedWithFulltext() throws Exception {
IndexDefinitionBuilder defnb = new IndexDefinitionBuilder();
defnb.indexRule("nt:base").property("foo").propertyIndex().sync();
defnb.indexRule("nt:base").property("bar").analyzed();
IndexDefinition defn = new IndexDefinition(root, defnb.build(), "/foo");
IndexNode node = createIndexNode(defn, 100);
FilterImpl filter = createFilter("nt:base");
filter.restrictProperty("foo", Operator.EQUAL, PropertyValues.newString("bar"));
filter.setFullTextConstraint(FullTextParser.parse("bar", "mountain"));
IndexPlanner planner = new IndexPlanner(node, "/foo", filter, ImmutableList.of(new OrderEntry("bar", Type.LONG, OrderEntry.Order.ASCENDING)));
QueryIndex.IndexPlan plan = planner.getPlan();
assertNotNull(plan);
assertEquals(documentsPerValue(100), plan.getEstimatedEntryCount());
PropertyIndexResult hr = pr(plan).getPropertyIndexResult();
assertNull(hr);
}
use of org.apache.jackrabbit.oak.plugins.index.lucene.IndexPlanner.PropertyIndexResult in project jackrabbit-oak by apache.
the class IndexPlannerTest method syncIndex_nonUniqueAndUniqueBoth.
/**
* If both non unique and unique indexes are found then unique should be picked
*/
@Test
public void syncIndex_nonUniqueAndUniqueBoth() throws Exception {
IndexDefinitionBuilder defnb = new IndexDefinitionBuilder();
defnb.indexRule("nt:base").property("foo").propertyIndex().unique();
defnb.indexRule("nt:base").property("bar").propertyIndex().sync();
IndexDefinition defn = new IndexDefinition(root, defnb.build(), "/foo");
IndexNode node = createIndexNode(defn, 100);
FilterImpl filter = createFilter("nt:base");
filter.restrictProperty("foo", Operator.EQUAL, PropertyValues.newString("bar"));
filter.restrictProperty("bar", Operator.EQUAL, PropertyValues.newString("foo"));
IndexPlanner planner = new IndexPlanner(node, "/foo", filter, Collections.<OrderEntry>emptyList());
QueryIndex.IndexPlan plan = planner.getPlan();
assertNotNull(plan);
assertEquals(1, plan.getEstimatedEntryCount());
PropertyIndexResult hr = pr(plan).getPropertyIndexResult();
assertNotNull(hr);
assertEquals("foo", hr.propertyName);
assertEquals("foo", hr.pr.propertyName);
}
Aggregations