@Override public MultiPhraseQuery build(QueryNode queryNode) throws QueryNodeException { MultiPhraseQueryNode phraseNode = (MultiPhraseQueryNode) queryNode; MultiPhraseQuery phraseQuery = new MultiPhraseQuery(); List<QueryNode> children = phraseNode.getChildren(); if (children != null) { TreeMap<Integer, List<Term>> positionTermMap = new TreeMap<>(); for (QueryNode child : children) { FieldQueryNode termNode = (FieldQueryNode) child; TermQuery termQuery = (TermQuery) termNode .getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); List<Term> termList = positionTermMap.get(termNode .getPositionIncrement()); if (termList == null) { termList = new LinkedList<>(); positionTermMap.put(termNode.getPositionIncrement(), termList); } termList.add(termQuery.getTerm()); } for (int positionIncrement : positionTermMap.keySet()) { List<Term> termList = positionTermMap.get(positionIncrement); phraseQuery.add(termList.toArray(new Term[termList.size()]), positionIncrement); } } return phraseQuery; }
@Override public MultiPhraseQuery build(QueryNode queryNode) throws QueryNodeException { MultiPhraseQueryNode phraseNode = (MultiPhraseQueryNode) queryNode; MultiPhraseQuery phraseQuery = new MultiPhraseQuery(); List<QueryNode> children = phraseNode.getChildren(); if (children != null) { TreeMap<Integer, List<Term>> positionTermMap = new TreeMap<>(); for (QueryNode child : children) { FieldQueryNode termNode = (FieldQueryNode) child; TermQuery termQuery = (TermQuery) termNode .getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); List<Term> termList = positionTermMap.get(termNode .getPositionIncrement()); if (termList == null) { termList = new LinkedList<>(); positionTermMap.put(termNode.getPositionIncrement(), termList); } termList.add(termQuery.getTerm()); } for (int positionIncrement : positionTermMap.keySet()) { List<Term> termList = positionTermMap.get(positionIncrement); phraseQuery.add(termList.toArray(new Term[termList.size()]), positionIncrement); } } return phraseQuery; }
public NodePhraseQuery build(final QueryNode queryNode) throws QueryNodeException { final TokenizedPhraseQueryNode phraseNode = (TokenizedPhraseQueryNode) queryNode; final NodePhraseQuery phraseQuery = new NodePhraseQuery(); final List<QueryNode> children = phraseNode.getChildren(); if (children != null) { for (final QueryNode child : children) { final NodeTermQuery termQuery = (NodeTermQuery) child .getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); final FieldQueryNode termNode = (FieldQueryNode) child; phraseQuery.add(termQuery.getTerm(), termNode.getPositionIncrement()); } } return phraseQuery; }
@Override public Query build(QueryNode queryNode) throws QueryNodeException { TokenizedPhraseQueryNode phraseNode = (TokenizedPhraseQueryNode) queryNode; PhraseQuery.Builder builder = new PhraseQuery.Builder(); List<QueryNode> children = phraseNode.getChildren(); if (children != null) { for (QueryNode child : children) { TermQuery termQuery = (TermQuery) child .getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); FieldQueryNode termNode = (FieldQueryNode) child; builder.add(termQuery.getTerm(), termNode.getPositionIncrement()); } } return builder.build(); }
@Override public Query build(QueryNode queryNode) throws QueryNodeException { TokenizedPhraseQueryNode phraseNode = (TokenizedPhraseQueryNode) queryNode; PhraseQuery.Builder builder = new PhraseQuery.Builder(); List<QueryNode> children = phraseNode.getChildren(); if (children != null) { for (QueryNode child : children) { TermQuery termQuery = (TermQuery) child .getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); FieldQueryNode termNode = (FieldQueryNode) child; builder.add(termQuery.getTerm(), termNode.getPositionIncrement()); } } return builder.build(); }
public NodePhraseQuery build(final QueryNode queryNode) throws QueryNodeException { final TokenizedPhraseQueryNode phraseNode = (TokenizedPhraseQueryNode) queryNode; final NodePhraseQuery phraseQuery = new NodePhraseQuery(); final List<QueryNode> children = phraseNode.getChildren(); if (children != null) { for (QueryNode child : children) { // the query node should always be a FieldQueryNode assert child instanceof FieldQueryNode; final FieldQueryNode termNode = (FieldQueryNode) child; final NodeTermQuery termQuery = (NodeTermQuery) child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); phraseQuery.add(termQuery.getTerm(), termNode.getPositionIncrement()); } } // assign the datatype. We must always have a datatype assigned. phraseQuery.setDatatype((String) queryNode.getTag(DatatypeQueryNode.DATATYPE_TAGID)); return phraseQuery; }