blob: 29863ac748dbcbb1001a9e29d573676709d369a4 [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.Standard
| 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.Standard
| 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.Standard">
<h1 id="Lucene_Net_QueryParsers_Flexible_Standard" data-uid="Lucene.Net.QueryParsers.Flexible.Standard" class="text-break">Namespace Lucene.Net.QueryParsers.Flexible.Standard
</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>Implementation of the {@linkplain org.apache.lucene.queryparser.classic Lucene classic query parser} using the flexible query parser frameworks</p>
<h2 id="lucene-flexible-query-parser-implementation">Lucene Flexible Query Parser Implementation</h2>
<p> The old Lucene query parser used to have only one class that performed all the parsing operations. In the new query parser structure, the parsing was divided in 3 steps: parsing (syntax), processing (semantic) and building. </p>
<p> The classes contained in the package org.apache.lucene.queryParser.standard are used to reproduce the same behavior as the old query parser. </p>
<p> Check <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.StandardQueryParser.html">StandardQueryParser</a> to quick start using the Lucene query parser. </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.Standard.QueryParserUtil.html">QueryParserUtil</a></h4>
<section><p>This class defines utility methods to (help) parse query strings into
<span class="xref">Lucene.Net.Search.Query</span> objects.</p>
</section>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.StandardQueryParser.html">StandardQueryParser</a></h4>
<section><p>This class is a helper that enables users to easily use the Lucene query
parser.
<p>
To construct a Query object from a query string, use the
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.StandardQueryParser.html#Lucene_Net_QueryParsers_Flexible_Standard_StandardQueryParser_Parse_System_String_System_String_">Parse(String, String)</a> method:</p>
<pre><code>StandardQueryParser queryParserHelper = new StandardQueryParser();
Query query = queryParserHelper.Parse(&quot;a AND b&quot;, &quot;defaultField&quot;);</code></pre>
<p>
To change any configuration before parsing the query string do, for example:
<pre><code>// the query config handler returned by StandardQueryParser is a
// StandardQueryConfigHandler
queryParserHelper.QueryConfigHandler.Analyzer = new WhitespaceAnalyzer();</code></pre>
<p>
The syntax for query strings is as follows (copied from the old QueryParser
javadoc):
<p>
A Query is a series of clauses. A clause may be prefixed by:
<ul><li>
a plus (<code>+</code>) or a minus (<code>-</code>) sign, indicating that
the clause is required or prohibited respectively; or
</li><li>
a term followed by a colon, indicating the field to be searched. This
enables one to construct queries which search multiple fields.
</li></ul>
A clause may be either:
<ul><li>
a term, indicating all the documents that contain this term; or
</li><li>
a nested query, enclosed in parentheses. Note that this may be used with
a <code>+</code>/<code>-</code> prefix to require any of a set of terms.
</li></ul>
Thus, in BNF, the query grammar is:
<pre><code> Query ::= ( Clause )*
Clause ::= [&quot;+&quot;, &quot;-&quot;] [&lt;TERM> &quot;:&quot;] ( &lt;TERM> | &quot;(&quot; Query &quot;)&quot; )</code></pre>
<p>
Examples of appropriately formatted queries can be found in the query syntax documentation.
</p>
<p>
The text parser used by this helper is a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.Parser.StandardSyntaxParser.html">StandardSyntaxParser</a>.
</p>
<p>
The query node processor used by this helper is a
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.Processors.StandardQueryNodeProcessorPipeline.html">StandardQueryNodeProcessorPipeline</a>.
</p>
<p>
The builder used by this helper is a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.Builders.StandardQueryTreeBuilder.html">StandardQueryTreeBuilder</a>.
</p>
</section>
<h3 id="interfaces">Interfaces
</h3>
<h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Standard.ICommonQueryParserConfiguration.html">ICommonQueryParserConfiguration</a></h4>
<section><p>Configuration options common across queryparser implementations.</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/Standard/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>