Example usage for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode ModifierQueryNode

List of usage examples for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode ModifierQueryNode

Introduction

In this page you can find the example usage for org.apache.lucene.queryparser.flexible.core.nodes ModifierQueryNode ModifierQueryNode.

Prototype

public ModifierQueryNode(QueryNode query, Modifier mod) 

Source Link

Document

Used to store the modifier value on the original query string

Usage

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;
}