@Override public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) { if (baseIndex == null) { return Collections.emptyList(); } FullTextExpression e = filter.getFullTextConstraint(); if (getNodeAggregator() == null || e == null) { // no aggregation: path-though return baseIndex.getPlans(filter, sortOrder, rootState); } if (!hasCompositeExpression(e)) { // path-though, but without node type restriction return baseIndex.getPlans(newAggregationFilter(filter, null), sortOrder, rootState); } AggregateIndexPlan plan = new AggregateIndexPlan(filter); collectCombinedPlan(e, filter, sortOrder, rootState, plan, ""); if (plan.containsPathWithoutPlan()) { // the full-text index didn't return a plan LOG.debug("Full-text index without plan: " + e); return Collections.emptyList(); } return Collections.singletonList((IndexPlan) plan); }
@Override public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) { if (baseIndex == null) { return Collections.emptyList(); } FullTextExpression e = filter.getFullTextConstraint(); if (getNodeAggregator() == null || e == null) { // no aggregation: path-though return baseIndex.getPlans(filter, sortOrder, rootState); } if (!hasCompositeExpression(e)) { // path-though, but without node type restriction return baseIndex.getPlans(newAggregationFilter(filter, null), sortOrder, rootState); } AggregateIndexPlan plan = new AggregateIndexPlan(filter); collectCombinedPlan(e, filter, sortOrder, rootState, plan, ""); if (plan.containsPathWithoutPlan()) { // the full-text index didn't return a plan LOG.debug("Full-text index without plan: " + e); return Collections.emptyList(); } return Collections.singletonList((IndexPlan) plan); }
@Override public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) { if (baseIndex == null) { return Collections.emptyList(); } FullTextExpression e = filter.getFullTextConstraint(); if (getNodeAggregator() == null || e == null) { // no aggregation: path-though return baseIndex.getPlans(filter, sortOrder, rootState); } if (!hasCompositeExpression(e)) { // path-though, but without node type restriction return baseIndex.getPlans(newAggregationFilter(filter, null), sortOrder, rootState); } AggregateIndexPlan plan = new AggregateIndexPlan(filter); collectCombinedPlan(e, filter, sortOrder, rootState, plan, ""); if (plan.containsPathWithoutPlan()) { // the full-text index didn't return a plan LOG.debug("Full-text index without plan: " + e); return Collections.emptyList(); } return Collections.singletonList((IndexPlan) plan); }
@Override public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) { return delegate.getPlans(filter, sortOrder, rootState); }
@Override public boolean visit(FullTextTerm term) { List<IndexPlan> list = baseIndex.getPlans( newAggregationFilter(filter, term), sortOrder, state); target.setPlan(path, list); return true; }
@Override public boolean visit(FullTextTerm term) { List<IndexPlan> list = baseIndex.getPlans( newAggregationFilter(filter, term), sortOrder, state); target.setPlan(path, list); return true; }
@Override public boolean visit(FullTextTerm term) { List<IndexPlan> list = baseIndex.getPlans( newAggregationFilter(filter, term), sortOrder, state); target.setPlan(path, list); return true; }