@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof TokenizedPhraseQueryNode || node instanceof MultiPhraseQueryNode) { return new SlopQueryNode(node, this.defaultPhraseSlop); } return node; }
public NodePhraseQuery build(QueryNode queryNode) throws QueryNodeException { final SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; if (phraseSlopNode.getValue() != 0) throw new NotImplementedException("Slop Queries not supported in Siren yet"); return (NodePhraseQuery) phraseSlopNode.getChild().getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); // TODO: To implement when siren will support slop queries // SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; // // Query query = (Query) phraseSlopNode.getChild().getTag( // QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); // // // if (query instanceof PhraseQuery) { // ((PhraseQuery) query).setSlop(phraseSlopNode.getValue()); // // } else { // ((MultiPhraseQuery) query).setSlop(phraseSlopNode.getValue()); // } // // return query; }
public QueryNode getChild() { return getChildren().get(0); }
@Override public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser) { if (getChild() == null) return ""; return getChild().toQueryString(escapeSyntaxParser) + "~" + getValueString(); }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode) { SlopQueryNode phraseSlopNode = (SlopQueryNode) node; if (!(phraseSlopNode.getChild() instanceof TokenizedPhraseQueryNode) && !(phraseSlopNode.getChild() instanceof MultiPhraseQueryNode)) { return phraseSlopNode.getChild(); } } return node; }
/** * @param query * - QueryNode Tree with the phrase * @param value * - slop value */ public SlopQueryNode(QueryNode query, int value) { if (query == null) { throw new QueryNodeError(new MessageImpl( QueryParserMessages.NODE_ACTION_NOT_SUPPORTED, "query", "null")); } this.value = value; setLeaf(false); allocate(); add(query); }
@Override protected QueryNode preProcessNode(final QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode && ((SlopQueryNode) node).getValue() != 0) { throw new QueryNodeException(new MessageImpl("Slop queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MultiPhraseQueryNode) { throw new QueryNodeException(new MessageImpl("Multi phrase queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MatchAllDocsQueryNodeBuilder) { throw new QueryNodeException(new MessageImpl("MatchAllDocsQueries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } return node; }
@Override public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser) { if (getChild() == null) return ""; return getChild().toQueryString(escapeSyntaxParser) + "~" + getValueString(); }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode) { SlopQueryNode phraseSlopNode = (SlopQueryNode) node; if (!(phraseSlopNode.getChild() instanceof TokenizedPhraseQueryNode) && !(phraseSlopNode.getChild() instanceof MultiPhraseQueryNode)) { return phraseSlopNode.getChild(); } } return node; }
/** * @param query * - QueryNode Tree with the phrase * @param value * - slop value */ public SlopQueryNode(QueryNode query, int value) { if (query == null) { throw new QueryNodeError(new MessageImpl( QueryParserMessages.NODE_ACTION_NOT_SUPPORTED, "query", "null")); } this.value = value; setLeaf(false); allocate(); add(query); }
@Override protected QueryNode preProcessNode(final QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode && ((SlopQueryNode) node).getValue() != 0) { throw new QueryNodeException(new MessageImpl("Slop queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MultiPhraseQueryNode) { throw new QueryNodeException(new MessageImpl("Multi phrase queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MatchAllDocsQueryNodeBuilder) { throw new QueryNodeException(new MessageImpl("MatchAllDocsQueries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } return node; }
public NodePhraseQuery build(QueryNode queryNode) throws QueryNodeException { final SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; if (phraseSlopNode.getValue() != 0) throw new NotImplementedException("Slop Queries not supported in Siren yet"); return (NodePhraseQuery) phraseSlopNode.getChild().getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); // TODO: To implement when siren will support slop queries // SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; // // Query query = (Query) phraseSlopNode.getChild().getTag( // QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); // // // if (query instanceof PhraseQuery) { // ((PhraseQuery) query).setSlop(phraseSlopNode.getValue()); // // } else { // ((MultiPhraseQuery) query).setSlop(phraseSlopNode.getValue()); // } // // return query; }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof TokenizedPhraseQueryNode || node instanceof MultiPhraseQueryNode) { return new SlopQueryNode(node, this.defaultPhraseSlop); } return node; }
@Override public String toString() { return "<slop value='" + getValueString() + "'>" + "\n" + getChild().toString() + "\n</slop>"; }
@Override public CharSequence getField() { QueryNode child = getChild(); if (child instanceof FieldableNode) { return ((FieldableNode) child).getField(); } return null; }
public QueryNode getChild() { return getChildren().get(0); }
public datawave.query.language.tree.QueryNode build(QueryNode queryNode) throws QueryNodeException { datawave.query.language.tree.QueryNode returnNode = null; SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; datawave.query.language.tree.QueryNode node = (datawave.query.language.tree.QueryNode) phraseSlopNode.getChild().getTag( QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (node instanceof AdjNode) { datawave.query.language.tree.QueryNode[] nodeArray = new datawave.query.language.tree.QueryNode[node.getChildren().size()]; returnNode = new WithinNode(phraseSlopNode.getValue(), node.getChildren().toArray(nodeArray)); } else if (node instanceof SelectorNode) { // if phrase only contained one word, a SelectorNode would be created // and then a SlopQueryNode / within makes no sense returnNode = node; } else { throw new UnsupportedOperationException(node.getClass().getName() + " found as a child of a SlopQueryNode -- not implemented"); } return returnNode; }
n = new SlopQueryNode(n, slopRange); node = new SlopQueryNode(node, originalSlop);
@Override public String toString() { return "<slop value='" + getValueString() + "'>" + "\n" + getChild().toString() + "\n</slop>"; }
@Override public void setField(CharSequence fieldName) { QueryNode child = getChild(); if (child instanceof FieldableNode) { ((FieldableNode) child).setField(fieldName); } }