blob: e87effdb80b6f3bb9ca00dec476336bfdbef3268 [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
| Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Namespace Lucene.Net.QueryParsers.Flexible.Core
| Apache Lucene.NET 4.8.0-beta00013 Documentation ">
<meta name="generator" content="docfx 2.56.2.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">
<span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
<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">
<h1 id="Lucene_Net_QueryParsers_Flexible_Core" data-uid="Lucene.Net.QueryParsers.Flexible.Core" class="text-break">Namespace Lucene.Net.QueryParsers.Flexible.Core
</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>Core classes of the flexible query parser framework.</p>
<h2 id="flexible-query-parser">Flexible Query Parser</h2>
<p> This package contains the necessary classes to implement a query parser. </p>
<p> A query parser is divided in at least 2 phases, text parsing and query building, and one optional phase called query processing. </p>
<h3 id="first-phase-text-parsing">First Phase: Text Parsing</h3>
<p> The text parsing phase is performed by a text parser, which implements &lt;xref:Lucene.Net.QueryParsers.Flexible.Core.Parser.SyntaxParser&gt; interface. A text parser is responsible to get a query string and convert it to a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree, which is an object structure that represents the elements defined in the query string. </p>
<h3 id="second-optional-phase-query-processing">Second (optional) Phase: Query Processing</h3>
<p> The query processing phase is performed by a query processor, which implements <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html">QueryNodeProcessor</a>. A query processor is responsible to perform any processing on a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree. This phase is optional and is used only if an extra processing, validation, query expansion, etc needs to be performed in a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree. The <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree can be either be generated by a text parser or programmatically created. </p>
<h3 id="third-phase-query-building">Third Phase: Query Building</h3>
<p> The query building phase is performed by a query builder, which implements &lt;xref:Lucene.Net.QueryParsers.Flexible.Core.Builders.QueryBuilder&gt;. A query builder is responsible to convert a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree into an arbitrary object, which is usually used to be executed against a search index. </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.QueryNodeError.html">QueryNodeError</a></h4>
<section><p>Error class with NLS support</p>
</section>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.QueryNodeException.html">QueryNodeException</a></h4>
<section><p>This exception should be thrown if something wrong happens when dealing with
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.IQueryNode.html">IQueryNode</a>s.
<p>
It also supports NLS messages.
</p></p>
</section>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.QueryNodeParseException.html">QueryNodeParseException</a></h4>
<section><p>This should be thrown when an exception happens during the query parsing from
string to the query node tree.</p>
</section>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.QueryParserHelper-1.html">QueryParserHelper&lt;TQuery&gt;</a></h4>
<section><p>This class is a helper for the query parser framework, it does all the three
query parser phrases at once: text parsing, query processing and query
building.
<p>
It contains methods that allows the user to change the implementation used on
the three phases.
</p></p>
</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-beta00013/src/Lucene.Net.QueryParser/Flexible/Core/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 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
</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>