blob: 41e0baf468b9e46f2abe3cd36951b7b324ba0ac8 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Namespace Lucene.Net.QueryParsers.Flexible.Core.Builders
| Apache Lucene.NET 4.8.0-beta00010 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Namespace Lucene.Net.QueryParsers.Flexible.Core.Builders
| Apache Lucene.NET 4.8.0-beta00010 Documentation ">
<meta name="generator" content="docfx 2.56.0.0">
<link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
<meta property="docfx:navrel" content="toc.html">
<meta property="docfx:tocrel" content="queryparser/toc.html">
<meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search">
<ul class="level0 breadcrumb">
<li>
<a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
<span id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</span>
</li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Lucene.Net.QueryParsers.Flexible.Core.Builders">
<h1 id="Lucene_Net_QueryParsers_Flexible_Core_Builders" data-uid="Lucene.Net.QueryParsers.Flexible.Core.Builders" class="text-break">Namespace Lucene.Net.QueryParsers.Flexible.Core.Builders
</h1>
<div class="markdown level0 summary"><!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>Necessary classes to implement query builders.</p>
<h2 id="query-parser-builders">Query Parser Builders</h2>
<p> The package <tt>org.apache.lucene.queryParser.builders</tt> contains the interface that builders must implement, it also contain a utility <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder.html">QueryTreeBuilder</a>, 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&#39;s a one-to-one mapping class. But other builders implementations can by written to convert QueryNode objects to other non lucene objects. </p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">Classes
</h3>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder.html">QueryTreeBuilder</a></h4>
<section><p>LUCENENET specific class for accessing static members of <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder-1.html">QueryTreeBuilder&lt;TQuery&gt;</a>
without referencing its generic closing type.</p>
</section>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder-1.html">QueryTreeBuilder&lt;TQuery&gt;</a></h4>
<section><p>This class should be used when there is a builder for each type of node.</p>
<p><p>
The type of node may be defined in 2 different ways: - by the field name,
when the node implements the <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.IFieldableNode.html">IFieldableNode</a> 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
</p>
<p>
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.
</p>
<p>
When a builder is found for a node, it&apos;s called and the node is passed to the
builder. If the returned built object is not <code>null</code>, it&apos;s tagged
on the node using the tag <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder.html#Lucene_Net_QueryParsers_Flexible_Core_Builders_QueryTreeBuilder_QUERY_TREE_BUILDER_TAGID">QUERY_TREE_BUILDER_TAGID</a>.
</p>
<p>
The children are usually built before the parent node. However, if a builder
associated to a node is an instance of <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder-1.html">QueryTreeBuilder&lt;TQuery&gt;</a>, the node is
delegated to this builder and it&apos;s responsible to build the node and its
children.
</p>
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.IQueryBuilder-1.html">IQueryBuilder&lt;TQuery&gt;</a></p>
</section>
<h3 id="interfaces">Interfaces
</h3>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.IQueryBuilder-1.html">IQueryBuilder&lt;TQuery&gt;</a></h4>
<section><p>This interface is used by implementors classes that builds some kind of
object from a query tree.</p>
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryTreeBuilder.html">QueryTreeBuilder</a>
</section>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/apache/lucenenet/blob/docs/4.8.0-beta00010/src/Lucene.Net.QueryParser/Flexible/Core/Builders/package.md/#L2" class="contribution-link">Improve this Doc</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
Copyright © 2020 Licensed to the Apache Software Foundation (ASF)
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
</body>
</html>