List of usage examples for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode ModifierQueryNode
public ModifierQueryNode(QueryNode query, Modifier mod)
From source file:com.sindicetech.siren.qparser.tree.parser.ClausePropertyParser.java
License:Open Source License
@Override protected ModifierQueryNode newClauseQueryNode(final QueryNode query, final Modifier mod) { return new ModifierQueryNode(query, mod); }
From source file:org.sindice.siren.qparser.json.parser.BooleanPropertyParser.java
License:Apache License
@Override BooleanQueryNode parse() throws ParseException { final JsonNode value = node.path(BOOLEAN_PROPERTY); if (!value.isArray()) { throw new ParseException("Invalid property '" + BOOLEAN_PROPERTY + "': value is not an array"); }//from w w w . java2 s.co m final BooleanQueryNode booleanNode = new BooleanQueryNode(); final Iterator<JsonNode> elements = value.getElements(); while (elements.hasNext()) { final JsonNode element = elements.next(); // parse occur final OccurPropertyParser occurParser = new OccurPropertyParser(element, field); Modifier mod = null; if (occurParser.isPropertyDefined()) { mod = occurParser.parse(); } // check if there is either a node or a twig property and parse it QueryNode queryNode = null; if (element.has(NodePropertyParser.NODE_PROPERTY)) { final NodePropertyParser nodeParser = new NodePropertyParser(element, field); queryNode = nodeParser.parse(); } if (element.has(TwigPropertyParser.TWIG_PROPERTY)) { final TwigPropertyParser twigParser = new TwigPropertyParser(element, field); queryNode = twigParser.parse(); } // check if either a node or twig property has been defined if (queryNode == null) { throw new ParseException( "Invalid property '" + BOOLEAN_PROPERTY + "': object does not define a twig or node query"); } // wrap the query node with a modifier, and add it to the boolean query booleanNode.add(new ModifierQueryNode(queryNode, mod)); } return booleanNode; }