private org.apache.lucene.search.BooleanQuery toBooleanQuery() throws QueryNodeException { final org.apache.lucene.search.BooleanQuery query = new org.apache.lucene.search.BooleanQuery(true); // convert clauses for (final QueryClause clause : clauses) { Query q = clause.getQuery().toQuery(false); if (q instanceof com.sindicetech.siren.search.node.NodeQuery) { // wrap the query into a LuceneProxyNodeQuery q = new LuceneProxyNodeQuery((com.sindicetech.siren.search.node.NodeQuery) q); } query.add(q, clause.getBooleanOccur()); } return query; }
private BooleanSpanQuery toBooleanSpanQuery() throws QueryNodeException { int slop = this.hasSlop() ? this.getSlop() : BooleanQueryNodeBuilder.DEFAULT_SLOP; boolean inOrder = this.hasInOrder() ? this.getInOrder() : BooleanQueryNodeBuilder.DEFAULT_INORDER; final BooleanSpanQuery query = new BooleanSpanQuery(slop, inOrder); // convert clauses for (final QueryClause clause : clauses) { final SpanQuery q = new NodeSpanQuery((com.sindicetech.siren.search.node.NodeQuery) clause.getQuery().toQuery(false)); query.add(q, clause.getNodeBooleanOccur()); } return query; }
@Override public ObjectNode toJson() { final ObjectNode obj = mapper.createObjectNode(); ObjectNode bool = obj.putObject(BooleanPropertyParser.BOOLEAN_PROPERTY); // add boost if (this.hasBoost()) { bool.put(BoostPropertyParser.BOOST_PROPERTY, this.getBoost()); } // add slop if (this.hasSlop()) { bool.put(SlopPropertyParser.SLOP_PROPERTY, this.getSlop()); } // add inOrder if (this.hasInOrder()) { bool.put(InOrderPropertyParser.IN_ORDER_PROPERTY, this.getInOrder()); } // add clauses ArrayNode array = bool.putArray(ClausePropertyParser.CLAUSE_PROPERTY); for (final QueryClause clause : clauses) { final ObjectNode e = array.addObject(); e.put(OccurPropertyParser.OCCUR_PROPERTY, clause.getOccur().toString()); e.putAll(clause.getQuery().toJson()); } return obj; }