@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof FieldQueryNode) { FieldQueryNode fqn = (FieldQueryNode) node; if (fqn.getField().toString().equals("*") && fqn.getText().toString().equals("*")) { return new MatchAllDocsQueryNode(); } } return node; }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof FieldQueryNode) { FieldQueryNode fqn = (FieldQueryNode) node; if (fqn.getField().toString().equals("*") && fqn.getText().toString().equals("*")) { return new MatchAllDocsQueryNode(); } } return node; }
public WildcardQueryNode(FieldQueryNode fqn) { this(fqn.getField(), fqn.getText(), fqn.getBegin(), fqn.getEnd()); }
public PrefixWildcardQueryNode(FieldQueryNode fqn) { this(fqn.getField(), fqn.getText(), fqn.getBegin(), fqn.getEnd()); }
public WildcardQueryNode(FieldQueryNode fqn) { this(fqn.getField(), fqn.getText(), fqn.getBegin(), fqn.getEnd()); }
public PrefixWildcardQueryNode(FieldQueryNode fqn) { this(fqn.getField(), fqn.getText(), fqn.getBegin(), fqn.getEnd()); }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { // the old Lucene Parser ignores FuzzyQueryNode that are also PrefixWildcardQueryNode or WildcardQueryNode // we do the same here, also ignore empty terms if (node instanceof FieldQueryNode || node instanceof FuzzyQueryNode) { FieldQueryNode fqn = (FieldQueryNode) node; CharSequence text = fqn.getText(); // do not process wildcards for TermRangeQueryNode children and // QuotedFieldQueryNode to reproduce the old parser behavior if (fqn.getParent() instanceof TermRangeQueryNode || fqn instanceof QuotedFieldQueryNode || text.length() <= 0) { // Ignore empty terms return node; } // Code below simulates the old lucene parser behavior for wildcards if (isWildcard(text)) { if (isPrefixWildcard(text)) { return new PrefixWildcardQueryNode(fqn.getField(), text, fqn.getBegin(), fqn.getEnd()); } else { return new WildcardQueryNode(fqn.getField(), text, fqn.getBegin(), fqn.getEnd()); } } } return node; }
@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; }
final CharSequence field = fieldNode.getField(); final NodeNumericQueryNode lowerNode = new NodeNumericQueryNode(field, number);