public NodeQuery build(final QueryNode queryNode) throws QueryNodeException { final RegexpQueryNode regexpNode = (RegexpQueryNode) queryNode; final NodeRegexpQuery q = new NodeRegexpQuery(new Term(regexpNode.getFieldAsString(), regexpNode.textToBytesRef())); final MultiNodeTermQuery.RewriteMethod method = (MultiNodeTermQuery.RewriteMethod) queryNode .getTag(MultiNodeTermRewriteMethodProcessor.TAG_ID); if (method != null) { q.setRewriteMethod(method); } return q; }
@Override public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser) { return isDefaultField(field)? "/"+text+"/": field + ":/" + text + "/"; }
public NodeQuery build(final QueryNode queryNode) throws QueryNodeException { final RegexpQueryNode regexpNode = (RegexpQueryNode) queryNode; final NodeRegexpQuery q = new NodeRegexpQuery(new Term(regexpNode.getFieldAsString(), regexpNode.textToBytesRef())); // assign the datatype. We must always have a datatype assigned. q.setDatatype((String) queryNode.getTag(DatatypeQueryNode.DATATYPE_TAGID)); final MultiNodeTermQuery.RewriteMethod method = (MultiNodeTermQuery.RewriteMethod) queryNode.getTag(MultiNodeTermRewriteMethodProcessor.TAG_ID); if (method != null) { q.setRewriteMethod(method); } // if it is tagged as a span query if (regexpNode.getTag(QueryTypeProcessor.QUERYTYPE_TAG) == QueryTypeProcessor.SPAN_QUERYTYPE) { return new MultiTermSpanQuery<>(q); } else { return q; } }
} else if (regexp) { String re = term.image.substring(1, term.image.length()-1); q = new RegexpQueryNode(field, re, 0, re.length());
public JexlNode build(QueryNode queryNode) throws QueryNodeException { JexlNode returnNode = null; if (queryNode instanceof RegexpQueryNode) { RegexpQueryNode regexpQueryNode = (RegexpQueryNode) queryNode; String field = regexpQueryNode.getFieldAsString(); UnescapedCharSequence ecs = (UnescapedCharSequence) regexpQueryNode.getText(); if (field == null || field.isEmpty()) { returnNode = new JexlSelectorNode(JexlSelectorNode.Type.REGEX, "", ecs.toString()); } else { returnNode = new JexlSelectorNode(JexlSelectorNode.Type.REGEX, field, ecs.toString()); } } return returnNode; }
fields.add(((PhraseSlopQueryNode) node).getField().toString()); } else if (node instanceof RegexpQueryNode) { fields.add(((RegexpQueryNode) node).getField().toString()); } else if (node instanceof SlopQueryNode) { fields.add(((SlopQueryNode) node).getField().toString());
q = new RegexpQueryNode(field, re, 0, re.length());
@Override public RegexpQuery build(QueryNode queryNode) throws QueryNodeException { RegexpQueryNode regexpNode = (RegexpQueryNode) queryNode; // TODO: make the maxStates configurable w/ a reasonable default (QueryParserBase uses 10000) RegexpQuery q = new RegexpQuery(new Term(regexpNode.getFieldAsString(), regexpNode.textToBytesRef())); MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod) queryNode .getTag(MultiTermRewriteMethodProcessor.TAG_ID); if (method != null) { q.setRewriteMethod(method); } return q; }
} else if (regexp) { String re = term.image.substring(1, term.image.length()-1); q = new RegexpQueryNode(field, re, 0, re.length());
@Override public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser) { return isDefaultField(field)? "/"+text+"/": field + ":/" + text + "/"; }
@Override public RegexpQuery build(QueryNode queryNode) throws QueryNodeException { RegexpQueryNode regexpNode = (RegexpQueryNode) queryNode; // TODO: make the maxStates configurable w/ a reasonable default (QueryParserBase uses 10000) RegexpQuery q = new RegexpQuery(new Term(regexpNode.getFieldAsString(), regexpNode.textToBytesRef())); MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod) queryNode .getTag(MultiTermRewriteMethodProcessor.TAG_ID); if (method != null) { q.setRewriteMethod(method); } return q; }
} else if (regexp) { String re = term.image.substring(1, term.image.length()-1); q = new RegexpQueryNode(field, re, 0, re.length());
String s = term.image.substring(1, term.image.length() - 1); UnescapedCharSequence ucs = EscapeQuerySyntaxImpl.discardEscapeChar(s, new char[] {'/'}, false); q = new RegexpQueryNode(field, ucs, 0, ucs.length());