@Override public TermQuery build(QueryNode queryNode) throws QueryNodeException { FieldQueryNode fieldNode = (FieldQueryNode) queryNode; return new TermQuery(new Term(fieldNode.getFieldAsString(), fieldNode .getTextAsString())); }
@Override public TermQuery build(QueryNode queryNode) throws QueryNodeException { FieldQueryNode fieldNode = (FieldQueryNode) queryNode; return new TermQuery(new Term(fieldNode.getFieldAsString(), fieldNode .getTextAsString())); }
public NodeTermQuery build(QueryNode queryNode) throws QueryNodeException { final FieldQueryNode fieldNode = (FieldQueryNode) queryNode; return new NodeTermQuery(new Term(fieldNode.getFieldAsString(), fieldNode .getTextAsString())); }
public JexlNode build(QueryNode queryNode) throws QueryNodeException { TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; FieldQueryNode lower = rangeNode.getLowerBound(); FieldQueryNode upper = rangeNode.getUpperBound(); boolean lowerWildcard = lower.getTextAsString().equals("*"); boolean upperWildcard = upper.getTextAsString().equals("*"); if (lowerWildcard && upperWildcard) { throw new QueryNodeException(new MessageImpl("Wildcard of lower and upper bouds not allowed")); } String field = rangeNode.getField().toString(); return new JexlRangeNode(field, lower.getTextAsString(), upper.getTextAsString(), rangeNode.isLowerInclusive(), rangeNode.isUpperInclusive()); }
private CachingTokenFilter getBuffer(Analyzer analyzer, FieldQueryNode fieldNode) { final TokenStream source; final String text = fieldNode.getTextAsString(); final String field = fieldNode.getFieldAsString(); try { source = analyzer.tokenStream(field, new StringReader(text)); source.reset(); } catch (final IOException e1) { throw new RuntimeException(e1); } return new CachingTokenFilter(source); }
public datawave.query.language.tree.QueryNode build(QueryNode queryNode) throws QueryNodeException { TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; FieldQueryNode upper = rangeNode.getUpperBound(); FieldQueryNode lower = rangeNode.getLowerBound(); String field = rangeNode.getField().toString(); RangeFieldedTerm rangeQuery = new RangeFieldedTerm(field, lower.getTextAsString(), upper.getTextAsString(), rangeNode.isLowerInclusive(), rangeNode.isUpperInclusive()); return new SelectorNode(rangeQuery); }
public NodeQuery build(QueryNode queryNode) throws QueryNodeException { final FieldQueryNode fieldNode = (FieldQueryNode) queryNode; // if it is tagged as a span query if (fieldNode.getTag(QueryTypeProcessor.QUERYTYPE_TAG) == QueryTypeProcessor.SPAN_QUERYTYPE) { // create the term span query TermSpanQuery tsq = new TermSpanQuery(new Term(fieldNode.getFieldAsString(), fieldNode.getTextAsString())); // assign the datatype. We must always have a datatype assigned. tsq.setDatatype((String) queryNode.getTag(DatatypeQueryNode.DATATYPE_TAGID)); return tsq; } else { // create the node term query NodeTermQuery ntq = new NodeTermQuery(new Term(fieldNode.getFieldAsString(), fieldNode.getTextAsString())); // assign the datatype. We must always have a datatype assigned. ntq.setDatatype((String) queryNode.getTag(DatatypeQueryNode.DATATYPE_TAGID)); return ntq; } }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof TermRangeQueryNode) { TermRangeQueryNode rangeNode = (TermRangeQueryNode) node; FieldQueryNode lowerNode = rangeNode.getLowerBound(); FieldQueryNode upperNode = rangeNode.getUpperBound(); CharSequence lowerText = lowerNode.getText(); CharSequence upperText = upperNode.getText(); if (OPEN_RANGE_TOKEN.equals(upperNode.getTextAsString()) && (!(upperText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) upperText) .wasEscaped(0))) { upperText = ""; } if (OPEN_RANGE_TOKEN.equals(lowerNode.getTextAsString()) && (!(lowerText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) lowerText) .wasEscaped(0))) { lowerText = ""; } lowerNode.setText(lowerText); upperNode.setText(upperText); } return node; }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof TermRangeQueryNode) { TermRangeQueryNode rangeNode = (TermRangeQueryNode) node; FieldQueryNode lowerNode = rangeNode.getLowerBound(); FieldQueryNode upperNode = rangeNode.getUpperBound(); CharSequence lowerText = lowerNode.getText(); CharSequence upperText = upperNode.getText(); if (OPEN_RANGE_TOKEN.equals(upperNode.getTextAsString()) && (!(upperText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) upperText) .wasEscaped(0))) { upperText = ""; } if (OPEN_RANGE_TOKEN.equals(lowerNode.getTextAsString()) && (!(lowerText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) lowerText) .wasEscaped(0))) { lowerText = ""; } lowerNode.setText(lowerText); upperNode.setText(upperText); } return node; }
public NodeTermRangeQuery build(final QueryNode queryNode) throws QueryNodeException { final TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; final FieldQueryNode upper = rangeNode.getUpperBound(); final FieldQueryNode lower = rangeNode.getLowerBound(); final String field = StringUtils.toString(rangeNode.getField()); String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString(); if (lowerText.length() == 0) { lowerText = null; } if (upperText.length() == 0) { upperText = null; } final NodeTermRangeQuery rangeQuery = NodeTermRangeQuery.newStringRange(field, lowerText, upperText, rangeNode .isLowerInclusive(), rangeNode.isUpperInclusive()); final MultiNodeTermQuery.RewriteMethod method = (MultiNodeTermQuery.RewriteMethod) queryNode .getTag(MultiNodeTermRewriteMethodProcessor.TAG_ID); if (method != null) { rangeQuery.setRewriteMethod(method); } return rangeQuery; }
String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString();
String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString();
public NodeQuery build(final QueryNode queryNode) throws QueryNodeException { final TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; final FieldQueryNode upper = rangeNode.getUpperBound(); final FieldQueryNode lower = rangeNode.getLowerBound(); final String field = StringUtils.toString(rangeNode.getField()); String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString(); if (lowerText.length() == 0) { lowerText = null; } if (upperText.length() == 0) { upperText = null; } final NodeTermRangeQuery rangeQuery = NodeTermRangeQuery.newStringRange(field, lowerText, upperText, rangeNode.isLowerInclusive(), rangeNode.isUpperInclusive()); final MultiNodeTermQuery.RewriteMethod method = (MultiNodeTermQuery.RewriteMethod) queryNode.getTag(MultiNodeTermRewriteMethodProcessor.TAG_ID); if (method != null) { rangeQuery.setRewriteMethod(method); } // if it is tagged as a span query if (rangeNode.getTag(QueryTypeProcessor.QUERYTYPE_TAG) == QueryTypeProcessor.SPAN_QUERYTYPE) { return new MultiTermSpanQuery<>(rangeQuery); } else { return rangeQuery; } }
String text = fieldNode.getTextAsString(); Number number = null; throw new QueryNodeParseException(new MessageImpl( QueryParserMessages.COULD_NOT_PARSE_NUMBER, fieldNode .getTextAsString(), numberFormat.getClass() .getCanonicalName()), e);
String text = fieldNode.getTextAsString(); Number number = null; throw new QueryNodeParseException(new MessageImpl( QueryParserMessages.COULD_NOT_PARSE_NUMBER, fieldNode .getTextAsString(), numberFormat.getClass() .getCanonicalName()), e);
@Override protected QueryNode postProcessNode(final QueryNode node) throws QueryNodeException { if (node instanceof FieldQueryNode && !(node.getParent() instanceof RangeQueryNode)) { final FieldQueryNode fieldNode = (FieldQueryNode) node; final Map<String, Analyzer> dts = this.getQueryConfigHandler().get(KeywordConfigurationKeys.DATATYPES_ANALYZERS); final Analyzer analyzer = dts.get(node.getTag(DatatypeQueryNode.DATATYPE_TAGID)); if (analyzer instanceof NumericAnalyzer) { final NumericAnalyzer na = (NumericAnalyzer) analyzer; final char[] text = fieldNode.getTextAsString().toCharArray(); final ReusableCharArrayReader textReader = new ReusableCharArrayReader(text); final Number number; try { number = na.getNumericParser().parse(textReader); } catch (final Exception e) { throw new QueryNodeParseException(new MessageImpl(QueryParserMessages.COULD_NOT_PARSE_NUMBER, text), e); } final CharSequence field = fieldNode.getField(); final NodeNumericQueryNode lowerNode = new NodeNumericQueryNode(field, number); final NodeNumericQueryNode upperNode = new NodeNumericQueryNode(field, number); return new NodeNumericRangeQueryNode(lowerNode, upperNode, true, true, na); } } return node; }
public TokenBuffer(Analyzer analyzer, FieldQueryNode node) { try { source = analyzer.tokenStream(node.getFieldAsString(), new StringReader(node.getTextAsString())); source.reset();
final FieldQueryNode upper = termRangeNode.getUpperBound(); final char[] lowerText = lower.getTextAsString().toCharArray(); final char[] upperText = upper.getTextAsString().toCharArray();
final FieldQueryNode upper = termRangeNode.getUpperBound(); final char[] lowerText = lower.getTextAsString().toCharArray(); final char[] upperText = upper.getTextAsString().toCharArray();
final char[] text = fieldNode.getTextAsString().toCharArray(); final ReusableCharArrayReader textReader = new ReusableCharArrayReader(text); final Number number;