Show / Hide Table of Contents

    Namespace Lucene.Net.QueryParsers.Flexible.Core.Builders

    Necessary classes to implement query builders.

    Query Parser Builders

    The package org.apache.lucene.queryParser.builders contains the interface that builders must implement, it also contain a utility QueryTreeBuilder, which walks the tree and call the Builder for each node in the tree. Builder normally convert QueryNode Object into a Lucene Query Object, and normally it's a one-to-one mapping class. But other builders implementations can by written to convert QueryNode objects to other non lucene objects.

    Classes

    QueryTreeBuilder

    LUCENENET specific class for accessing static members of QueryTreeBuilder<TQuery> without referencing its generic closing type.

    QueryTreeBuilder<TQuery>

    This class should be used when there is a builder for each type of node.

    The type of node may be defined in 2 different ways: - by the field name, when the node implements the IFieldableNode interface - by its class, it keeps checking the class and all the interfaces and classes this class implements/extends until it finds a builder for that class/interface

    This class always check if there is a builder for the field name before it checks for the node class. So, field name builders have precedence over class builders.

    When a builder is found for a node, it's called and the node is passed to the builder. If the returned built object is not null, it's tagged on the node using the tag QUERY_TREE_BUILDER_TAGID.

    The children are usually built before the parent node. However, if a builder associated to a node is an instance of QueryTreeBuilder<TQuery>, the node is delegated to this builder and it's responsible to build the node and its children.

    IQueryBuilder<TQuery>

    Interfaces

    IQueryBuilder<TQuery>

    This interface is used by implementors classes that builds some kind of object from a query tree.

    QueryTreeBuilder
    • Improve this Doc
    Back to top Copyright © 2020 Licensed to the Apache Software Foundation (ASF)