Fork me on GitHub
  • API

    Show / Hide Table of Contents

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

    Necessary classes to implement query builders.

    Query Parser Builders

    The namespace Lucene.Net.QueryParsers.Core.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

    Back to top Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0
    Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation.
    All other marks mentioned may be trademarks or registered trademarks of their respective owners.