@Test public void noPlanForSortOnlyByScore() throws Exception{ NodeBuilder defn = newLucenePropertyIndexDefinition(builder, "test", of("foo"), "async"); LuceneIndexNode node = createIndexNode(new LuceneIndexDefinition(root, defn.getNodeState(), "/foo")); FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/foo", createFilter("nt:file"), ImmutableList.of(new OrderEntry("jcr:score", Type.LONG, OrderEntry.Order.ASCENDING))); assertNull(planner.getPlan()); }
@Test public void planForSortField() throws Exception{ NodeBuilder defn = newLucenePropertyIndexDefinition(builder, "test", of("foo"), "async"); defn.setProperty(createProperty(ORDERED_PROP_NAMES, of("foo"), STRINGS)); LuceneIndexNode node = createIndexNode(new LuceneIndexDefinition(root, defn.getNodeState(), "/foo")); FulltextIndexPlanner planner = new FulltextIndexPlanner(node, "/foo", createFilter("nt:base"), ImmutableList.of(new OrderEntry("foo", Type.LONG, OrderEntry.Order.ASCENDING))); assertNotNull(planner.getPlan()); assertTrue(pr(planner.getPlan()).isUniquePathsRequired()); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } String pn = normalizePropertyName(propertyName); return new OrderEntry( pn, Type.UNDEFINED, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + getFunction(s), Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + getFunction(s), Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + getFunction(s), Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.LONG, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.LONG, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + getFunction(s), Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.LONG, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { String fn = getFunction(s); if (fn != null) { return new OrderEntry( QueryConstants.FUNCTION_RESTRICTION_PREFIX + fn, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); } return null; }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } return new OrderEntry( QueryConstants.RESTRICTION_NAME, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }
@Override public OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o) { if (!s.equals(selector)) { // ordered by a different selector return null; } return new OrderEntry( QueryConstants.RESTRICTION_LOCAL_NAME, Type.STRING, o.isDescending() ? OrderEntry.Order.DESCENDING : OrderEntry.Order.ASCENDING); }