/** * Adds a term to the end of the query phrase. The relative position of the * term is the one immediately after the last term added. */ public void add(final Term term) { int position = 0; if (positions.size() > 0) { position = (positions.get(positions.size() - 1)).intValue() + 1; } this.add(term, position); }
private NodePhraseQueryBuilder(final String fieldName, final String[] terms) { npq = new NodePhraseQuery(); for (int i = 0; i < terms.length; i++) { if (terms[i].isEmpty()) { // if empty string, skip it continue; } final Term t = new Term(fieldName, terms[i]); npq.add(t, i); } }
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; }