@Override public Node visit(final Query query) { super.visit(query); return query; }
@Override public Node visit(final BooleanQuery booleanQuery) { super.visit(booleanQuery); return booleanQuery; }
@Override public Node visit(final RawQuery rawQuery) { super.visit(rawQuery); return rawQuery; }
@Override public Node visit(final BooleanQuery bq) { previousTerm = null; return super.visit(bq); } }
@Override public Node visit(DisjunctionMaxQuery disjunctionMaxQuery) { sequencesStack.getLast().nextPosition(disjunctionMaxQuery); return super.visit(disjunctionMaxQuery); }
@Override public Node visit(DisjunctionMaxQuery disjunctionMaxQuery) { sequencesStack.getLast().nextPosition(); return super.visit(disjunctionMaxQuery); }
@Override public Node visit(Term term) { sequencesStack.getLast().addElement(term); return super.visit(term); }
@Override public Node visit(final BooleanQuery bq) { previousTerms.clear(); return super.visit(bq); }
@Override public Node visit(Term term) { if (!term.isGenerated()) { try { sequencesStack.getLast().putTerm(term); } catch (IOException e) { throw new RuntimeException(e); } } return super.visit(term); }
@Override public Node visit(BooleanQuery booleanQuery) { sequencesStack.add(new PositionSequence<Term>()); super.visit(booleanQuery); applySequence(sequencesStack.removeLast(), false); return null; }
@Override public Node visit(BooleanQuery booleanQuery) { if ((!sequencesStack.isEmpty()) && booleanQuery.getParent() instanceof BooleanQuery) { // left-hand siblings might be DMQs with Terms - terminate sequences sequencesStack.getLast().apply(); } // new Sequences object for child DMQ/Term objects sequencesStack.add(new Sequences(synonymMap)); super.visit(booleanQuery); sequencesStack.removeLast().apply(); return null; }
@Override public ExpandedQuery rewrite(ExpandedQuery query, Map<String, Object> context) { QuerqyQuery<?> userQuery = query.getUserQuery(); if (userQuery instanceof Query) { this.expandedQuery = query; this.context = context; sequencesStack.add(new PositionSequence<Term>()); super.visit((BooleanQuery) query.getUserQuery()); applySequence(sequencesStack.removeLast(), true); } return query; }
case 1: super.visit(dmq); break;
@Override public Node visit(Query query) { String indend = makeIndend(); writer.println(indend + "Q ("); depth++; super.visit(query); depth--; writer.println(indend + ")"); return null; }
@Override public Node visit(BooleanQuery booleanQuery) { String indend = makeIndend(); writer.print(indend); writer.println(booleanQuery.getOccur() + "BQ: ("); depth++; super.visit(booleanQuery); depth--; writer.println(indend + ")"); return null; };
@Override public Node visit(DisjunctionMaxQuery disjunctionMaxQuery) { String indend = makeIndend(); writer.print(indend); writer.println(disjunctionMaxQuery.getOccur() + "DMQ: ("); depth++; super.visit(disjunctionMaxQuery); depth--; writer.println(indend + ")"); return null; };
super.visit(disjunctionMaxQuery); dmqStack.removeLast();
super.visit(booleanQuery); clauseStack.removeLast();