@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {}", operator); ctx.setResult(operator.apply(evaluator.evaluate(ctx))); return ctx.getResult(); } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {}", operator); ctx.setResult(operator.apply(evaluator.evaluate(ctx))); return ctx.getResult(); } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {}", operator); ctx.setResult(operator.apply(evaluator.evaluate(ctx))); return ctx.getResult(); } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {} {}", relativePath, regex); KeyValueCursor<Path, JsonNode> cursor = ctx.getNodes(relativePath); while (cursor.hasNext()) { cursor.next(); JsonNode valueNode = cursor.getCurrentValue(); Object docValue; if (valueNode != null) { docValue = fieldMd.getType().fromJson(valueNode); } else { docValue = null; } LOGGER.debug(" value={}", valueNode); ctx.setResult(false); if (docValue != null) { ctx.setResult(regex.matcher(docValue.toString()).matches()); } if (ctx.getResult()) { break; } } return ctx.getResult(); } }
@Override public Stream<ResultDocument> stream() { return super.stream().filter(doc -> { boolean ret=qe.evaluate(doc.getDoc()).getResult(); if(ret&&recordResultSetSize) ctx.setMatchCount(ctx.getMatchCount()+1); return ret; }); } };
@Override public Stream<ResultDocument> stream() { return super.stream().filter(doc -> { boolean ret=qe.evaluate(doc.getDoc()).getResult(); if(ret&&recordResultSetSize) ctx.setMatchCount(ctx.getMatchCount()+1); return ret; }); } };
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {} {} {}", field, operator, values); KeyValueCursor<Path, JsonNode> cursor = ctx.getNodes(field, true); boolean ret = false; while (cursor.hasNext()) { cursor.next(); JsonNode valueNode = cursor.getCurrentValue(); Object docValue = fieldMd.getType().fromJson(valueNode); LOGGER.debug(" value={}", valueNode); boolean in = values.contains(docValue); LOGGER.debug(" result={}", in); if (in) { ret = true; break; } } ctx.setResult(operator.apply(ret)); return ctx.getResult(); } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {} {} {}", field, operator, values); KeyValueCursor<Path, JsonNode> cursor = ctx.getNodes(field, true); boolean ret = false; while (cursor.hasNext()) { cursor.next(); JsonNode valueNode = cursor.getCurrentValue(); Object docValue = fieldMd.getType().fromJson(valueNode); LOGGER.debug(" value={}", valueNode); boolean in = values.contains(docValue); LOGGER.debug(" result={}", in); if (in) { ret = true; break; } } ctx.setResult(operator.apply(ret)); return ctx.getResult(); } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { Object value=rvalue.getValue(); LOGGER.debug("evaluate {} {} {}", field, operator, value); KeyValueCursor<Path, JsonNode> cursor = ctx.getNodes(field); while (cursor.hasNext()) { cursor.next(); JsonNode valueNode = cursor.getCurrentValue(); Object docValue; if (valueNode != null) { docValue = fieldMd.getType().fromJson(valueNode); } else { docValue = null; } LOGGER.debug(" value={}", valueNode); int result = fieldMd.getType().compare(docValue, value); LOGGER.debug(" result={}", result); ctx.setResult(operator.apply(result)); if (ctx.getResult()) { break; } } return ctx.getResult(); } }
ArrayNode destNode=null; for (ResultDocument childDoc : childDocs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot());
ArrayNode destNode=null; for (ResultDocument childDoc : childDocs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot());
return ctx.getResult();
private void associateDocsWithIndex(CompositeMetadata childMetadata, ResultDocument parentDoc, Path destFieldName, BindQuery binders, List<ResultDocument> childDocs, AssociationQuery aq, MemDocIndex childIndex) { LOGGER.debug("Associating docs using index"); QueryExpression boundQuery = binders.iterate(aq.getQuery()); LOGGER.debug("Association query:{}", boundQuery); QueryEvaluator qeval = QueryEvaluator.getInstance(boundQuery, childMetadata); AnalyzeQuery analyzer=new AnalyzeQuery(block.rootMd,aq.getReference()); analyzer.iterate(boundQuery); List<QueryFieldInfo> qfi=analyzer.getFieldInfo(); GetIndexLookupSpec gils=new GetIndexLookupSpec(qfi); LookupSpec ls=gils.iterate(boundQuery); LOGGER.debug("Lookup spec:"+ls); List<ResultDocument> docs=reorder(childDocs,childIndex.find(ls)); ArrayNode destNode=null; for (ResultDocument childDoc : docs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot()); } } }
private void associateDocsWithIndex(CompositeMetadata childMetadata, ResultDocument parentDoc, Path destFieldName, BindQuery binders, List<ResultDocument> childDocs, AssociationQuery aq, MemDocIndex childIndex) { LOGGER.debug("Associating docs using index"); QueryExpression boundQuery = binders.iterate(aq.getQuery()); LOGGER.debug("Association query:{}", boundQuery); QueryEvaluator qeval = QueryEvaluator.getInstance(boundQuery, childMetadata); AnalyzeQuery analyzer=new AnalyzeQuery(block.rootMd,aq.getReference()); analyzer.iterate(boundQuery); List<QueryFieldInfo> qfi=analyzer.getFieldInfo(); GetIndexLookupSpec gils=new GetIndexLookupSpec(qfi); LookupSpec ls=gils.iterate(boundQuery); LOGGER.debug("Lookup spec:"+ls); List<ResultDocument> docs=reorder(childDocs,childIndex.find(ls)); ArrayNode destNode=null; for (ResultDocument childDoc : docs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot()); } } }
return ctx.getResult();
return ctx.getResult();