<html xmlns:MSHelp="http://msdn.microsoft.com/mshelp" xmlns:mshelp="http://msdn.microsoft.com/mshelp" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" /><META NAME="save" CONTENT="history" /><title>QueryParser Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="QueryParser class" /><meta name="System.Keywords" content="Lucene.Net.QueryParsers.QueryParser class" /><meta name="System.Keywords" content="QueryParser class, about QueryParser class" /><meta name="Microsoft.Help.F1" content="Lucene.Net.QueryParsers.QueryParser" /><meta name="Microsoft.Help.Id" content="T:Lucene.Net.QueryParsers.QueryParser" /><meta name="Description" content="This class is generated by JavaCC. The most important method is {@link #Parse(String)}. The syntax for query strings is as follows: A Query is a series of clauses." /><meta name="Microsoft.Help.ContentType" content="Reference" /><link rel="stylesheet" type="text/css" href="../styles/Presentation.css" /><link rel="stylesheet" type="text/css" href="ms-help://Hx/HxRuntime/HxLink.css" /><script type="text/javascript" src="../scripts/EventUtilities.js"> </script><script type="text/javascript" src="../scripts/SplitScreen.js"> </script><script type="text/javascript" src="../scripts/Dropdown.js"> </script><script type="text/javascript" src="../scripts/script_manifold.js"> </script><script type="text/javascript" src="../scripts/script_feedBack.js"> </script><script type="text/javascript" src="../scripts/CheckboxMenu.js"> </script><script type="text/javascript" src="../scripts/CommonUtilities.js"> </script><meta name="container" content="Lucene.Net.QueryParsers" /><meta name="file" content="a447e86b-9bd5-7b22-e76f-718fa02929d3" /><meta name="guid" content="a447e86b-9bd5-7b22-e76f-718fa02929d3" /><xml><MSHelp:Attr Name="AssetID" Value="T:Lucene.Net.QueryParsers.QueryParser" /><MSHelp:TOCTitle Title="QueryParser Class" /><MSHelp:RLTitle Title="QueryParser Class (Lucene.Net.QueryParsers)" /><MSHelp:Keyword Index="A" Term="T:Lucene.Net.QueryParsers.QueryParser" /><MSHelp:Keyword Index="A" Term="frlrfLuceneNetQueryParsersQueryParserClassTopic" /><MSHelp:Keyword Index="K" Term="QueryParser class" /><MSHelp:Keyword Index="K" Term="Lucene.Net.QueryParsers.QueryParser class" /><MSHelp:Keyword Index="K" Term="QueryParser class, about QueryParser class" /><MSHelp:Keyword Index="F" Term="Lucene.Net.QueryParsers.QueryParser" /><MSHelp:Attr Name="HelpPriority" Value="2" /><MSHelp:Attr Name="APIType" Value="Managed" /><MSHelp:Attr Name="APILocation" Value="Lucene.Net.dll" /><MSHelp:Attr Name="APIName" Value="Lucene.Net.QueryParsers.QueryParser" /><MSHelp:Attr Name="DevLang" Value="CSharp" /><MSHelp:Attr Name="DevLang" Value="VB" /><MSHelp:Attr Name="Locale" Value="en-us" /><MSHelp:Attr Name="TopicType" Value="kbSyntax" /><MSHelp:Attr Name="TopicType" Value="apiref" /><MSHelp:Attr Name="Abstract" Value="This class is generated by JavaCC. The most important method is {@link #Parse(String)}. The syntax for query strings is as follows: A Query is a series of clauses. A clause may be pr ..." /><MSHelp:Attr Name="AssemblyVersion" Value="2.9.4.1" /></xml><link type="text/css" rel="stylesheet" href="../styles/highlight.css" /><script type="text/javascript" src="../scripts/highlight.js"> </script></head><body><input type="hidden" id="userDataCache" class="userDataStyle" /><input type="hidden" id="hiddenScrollOffset" /><img id="collapseImage" style="display:none; height:0; width:0;" src="../icons/collapse_all.gif" alt="Collapse image" title="Collapse image" /><img id="expandImage" style="display:none; height:0; width:0;" src="../icons/expand_all.gif" alt="Expand Image" title="Expand Image" /><img id="collapseAllImage" style="display:none; height:0; width:0;" src="../icons/collapse_all.gif" /><img id="expandAllImage" style="display:none; height:0; width:0;" src="../icons/expand_all.gif" /><img id="dropDownImage" style="display:none; height:0; width:0;" src="../icons/dropdown.gif" /><img id="dropDownHoverImage" style="display:none; height:0; width:0;" src="../icons/dropdownHover.gif" /><img id="copyImage" style="display:none; height:0; width:0;" src="../icons/copycode.gif" alt="Copy image" title="Copy image" /><img id="copyHoverImage" style="display:none; height:0; width:0;" src="../icons/copycodeHighlight.gif" alt="CopyHover image" title="CopyHover image" /><div id="header"><table id="topTable" cellspacing="0" cellpadding="0"><tr><td><span onclick="ExpandCollapseAll(toggleAllImage)" style="cursor:default;" onkeypress="ExpandCollapseAll_CheckKey(toggleAllImage, event)" tabindex="0"><img ID="toggleAllImage" class="toggleAll" src="../icons/collapse_all.gif" /> <label id="collapseAllLabel" for="toggleAllImage" style="display: none;">Collapse All</label><label id="expandAllLabel" for="toggleAllImage" style="display: none;">Expand All</label> </span><span> </span><span id="devlangsDropdown" class="filter" tabindex="0"><img id="devlangsDropdownImage" src="../icons/dropdown.gif" /> <label id="devlangsMenuAllLabel" for="devlangsDropdownImage" style="display: none;"><nobr>Code: All </nobr></label><label id="devlangsMenuMultipleLabel" for="devlangsDropdownImage" style="display: none;"><nobr>Code: Multiple </nobr></label><label id="devlangsMenuCSharpLabel" for="devlangsDropdownImage" style="display: none;"><nobr>Code: C# </nobr></label><label id="devlangsMenuVisualBasicLabel" for="devlangsDropdownImage" style="display: none;"><nobr>Code: Visual Basic </nobr></label><label id="devlangsMenuManagedCPlusPlusLabel" for="devlangsDropdownImage" style="display: none;"><nobr>Code: Visual C++ </nobr></label></span></td></tr></table><div id="devlangsMenu"><input id="CSharpCheckbox" type="checkbox" data="CSharp,cs,'persist'" value="on" onClick="SetLanguage(this)" /><label class="checkboxLabel" for="CSharpCheckbox">C#</label><br /><input id="VisualBasicCheckbox" type="checkbox" data="VisualBasic,vb,'persist'" value="on" onClick="SetLanguage(this)" /><label class="checkboxLabel" for="VisualBasicCheckbox">Visual Basic</label><br /><input id="ManagedCPlusPlusCheckbox" type="checkbox" data="ManagedCPlusPlus,cpp,'persist'" value="on" onClick="SetLanguage(this)" /><label class="checkboxLabel" for="ManagedCPlusPlusCheckbox">Visual C++</label><br /></div><table id="bottomTable" cellpadding="0" cellspacing="0"><tr id="headerTableRow1"><td align="left"><span id="runningHeaderText">Lucene.Net Class Libraries</span></td></tr><tr id="headerTableRow2"><td align="left"><span id="nsrTitle">QueryParser Class</span></td></tr><tr id="headerTableRow3"><td align="left"><a href="75334850-5014-6ff0-d016-7eb3e337240f.htm">Members</a> <a href="#seeAlsoToggle" onclick="OpenSection(seeAlsoToggle)">See Also</a> <span id="headfeedbackarea" class="feedbackhead"><a href="javascript:SubmitFeedback('','Lucene.Net Class Libraries','','','','%0\dYour%20feedback%20is%20used%20to%20improve%20the%20documentation%20and%20the%20product.%20Your%20e-mail%20address%20will%20not%20be%20used%20for%20any%20other%20purpose%20and%20is%20disposed%20of%20after%20the%20issue%20you%20report%20is%20resolved.%20%20While%20working%20to%20resolve%20the%20issue%20that%20you%20report,%20you%20may%20be%20contacted%20via%20e-mail%20to%20get%20further%20details%20or%20clarification%20on%20the%20feedback%20you%20sent.%20After%20the%20issue%20you%20report%20has%20been%20addressed,%20you%20may%20receive%20an%20e-mail%20to%20let%20you%20know%20that%20your%20feedback%20has%20been%20addressed.%0\A%0\d','Customer%20Feedback');">Send Feedback</a></span></td></tr></table><table id="gradientTable"><tr><td class="nsrBottom" background="../icons/gradient.gif" /></tr></table></div><div id="mainSection"><div id="mainBody"><div id="allHistory" class="saveHistory" onsave="saveAll()" onload="loadAll()" /><span style="color: DarkGray"></span><div class="summary"> This class is generated by JavaCC. The most important method is | |
{@link #Parse(String)}. | |
The syntax for query strings is as follows: | |
A Query is a series of clauses. | |
A clause may be prefixed by: | |
<ul><li> a plus (<span id="cbc_1" x-lang="CSharp" codeLanguage="CSharp"><div class="highlight-title"><span class="highlight-copycode" onkeypress="javascript:CopyColorizedCodeCheckKey(this.parentNode, event);" tabindex="0" onmouseover="CopyCodeChangeIcon(this)" onmouseout="CopyCodeChangeIcon(this)" onclick="javascript:CopyColorizedCode(this.parentNode);"><img style="margin-right: 5px;" src="../icons/CopyCode.gif" />Copy</span>C#</div><div class="code"><pre xml:space="preserve">+</pre></div></span>) or a minus (<span id="cbc_2" x-lang="CSharp" codeLanguage="CSharp"><div class="highlight-title"><span class="highlight-copycode" onkeypress="javascript:CopyColorizedCodeCheckKey(this.parentNode, event);" tabindex="0" onmouseover="CopyCodeChangeIcon(this)" onmouseout="CopyCodeChangeIcon(this)" onclick="javascript:CopyColorizedCode(this.parentNode);"><img style="margin-right: 5px;" src="../icons/CopyCode.gif" />Copy</span>C#</div><div class="code"><pre xml:space="preserve">-</pre></div></span>) 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 <span id="cbc_3" x-lang="CSharp" codeLanguage="CSharp"><div class="highlight-title"><span class="highlight-copycode" onkeypress="javascript:CopyColorizedCodeCheckKey(this.parentNode, event);" tabindex="0" onmouseover="CopyCodeChangeIcon(this)" onmouseout="CopyCodeChangeIcon(this)" onclick="javascript:CopyColorizedCode(this.parentNode);"><img style="margin-right: 5px;" src="../icons/CopyCode.gif" />Copy</span>C#</div><div class="code"><pre xml:space="preserve">+</pre></div></span>/<span id="cbc_4" x-lang="CSharp" codeLanguage="CSharp"><div class="highlight-title"><span class="highlight-copycode" onkeypress="javascript:CopyColorizedCodeCheckKey(this.parentNode, event);" tabindex="0" onmouseover="CopyCodeChangeIcon(this)" onmouseout="CopyCodeChangeIcon(this)" onclick="javascript:CopyColorizedCode(this.parentNode);"><img style="margin-right: 5px;" src="../icons/CopyCode.gif" />Copy</span>C#</div><div class="code"><pre xml:space="preserve">-</pre></div></span> prefix to require any of a set of | |
terms.</li></ul> | |
Thus, in BNF, the query grammar is: | |
<pre> | |
Query ::= ( Clause )* | |
Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" ) | |
</pre><p /> | |
Examples of appropriately formatted queries can be found in the <a href="../../../../../../queryparsersyntax.html">query syntax | |
documentation</a>. | |
<p /><p /> | |
In {@link TermRangeQuery}s, QueryParser tries to detect date values, e.g. | |
date:[6/1/2005 TO 6/4/2005] produces a range query that searches | |
for "date" fields between 2005-06-01 and 2005-06-04. Note that the format | |
of the accepted input depends on {@link #SetLocale(Locale) the locale}. | |
By default a date is converted into a search term using the deprecated | |
{@link DateField} for compatibility reasons. | |
To use the new {@link DateTools} to convert dates, a | |
{@link Lucene.Net.Documents.DateTools.Resolution} has to be set. | |
<p /><p /> | |
The date resolution that shall be used for RangeQueries can be set | |
using {@link #SetDateResolution(DateTools.Resolution)} | |
or {@link #SetDateResolution(String, DateTools.Resolution)}. The former | |
sets the default date resolution for all fields, whereas the latter can | |
be used to set field specific date resolutions. Field specific date | |
resolutions take, if set, precedence over the default date resolution. | |
<p /><p /> | |
If you use neither {@link DateField} nor {@link DateTools} in your | |
index, you can create your own | |
query parser that inherits QueryParser and overwrites | |
{@link #GetRangeQuery(String, String, String, boolean)} to | |
use a different method for date conversion. | |
<p /><p />Note that QueryParser is <em>not</em> thread-safe.<p /><p /><b>NOTE</b>: there is a new QueryParser in contrib, which matches | |
the same syntax as this class, but is more modular, | |
enabling substantial customization to how a query is created. | |
<p /><b>NOTE</b>: there is a new QueryParser in contrib, which matches | |
the same syntax as this class, but is more modular, | |
enabling substantial customization to how a query is created. | |
<b>NOTE</b>: You must specify the required {@link Version} compatibility when | |
creating QueryParser: | |
<ul><li>As of 2.9, {@link #SetEnablePositionIncrements} is true by default.</li></ul></div><p /><b>Namespace:</b> <a href="0db878b9-579a-2fca-3dc9-ce519e5743a8.htm">Lucene.Net.QueryParsers</a><br /><b>Assembly:</b> <span sdata="assembly">Lucene.Net</span> (in Lucene.Net.dll) Version: 2.9.4.1<h1 class="heading"><span onclick="ExpandCollapse(syntaxToggle)" style="cursor:default;" onkeypress="ExpandCollapse_CheckKey(syntaxToggle, event)" tabindex="0"><img id="syntaxToggle" class="toggle" name="toggleSwitch" src="../icons/collapse_all.gif" />Syntax</span></h1><div id="syntaxSection" class="section" name="collapseableSection" style=""><div id="syntaxCodeBlocks" class="code"><span codeLanguage="CSharp"><table><tr><th>C#</th></tr><tr><td><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">QueryParser</span> : <a href="5cde80e5-bc24-d2d0-fc58-e118823ff2e1.htm">QueryParserConstants</a></pre></td></tr></table></span><span codeLanguage="VisualBasicDeclaration"><table><tr><th>Visual Basic</th></tr><tr><td><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">QueryParser</span> _ | |
<span class="keyword">Inherits</span> <a href="5cde80e5-bc24-d2d0-fc58-e118823ff2e1.htm">QueryParserConstants</a></pre></td></tr></table></span><span codeLanguage="ManagedCPlusPlus"><table><tr><th>Visual C++</th></tr><tr><td><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">QueryParser</span> : <span class="keyword">public</span> <a href="5cde80e5-bc24-d2d0-fc58-e118823ff2e1.htm">QueryParserConstants</a></pre></td></tr></table></span></div></div><h1 class="heading"><span onclick="ExpandCollapse(familyToggle)" style="cursor:default;" onkeypress="ExpandCollapse_CheckKey(familyToggle, event)" tabindex="0"><img id="familyToggle" class="toggle" name="toggleSwitch" src="../icons/collapse_all.gif" />Inheritance Hierarchy</span></h1><div id="familySection" class="section" name="collapseableSection" style=""><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span class="languageSpecificText"><span class="cs">.</span><span class="vb">.</span><span class="cpp">::</span><span class="nu">.</span><span class="fs">.</span></span>Object</a><br /> <a href="5cde80e5-bc24-d2d0-fc58-e118823ff2e1.htm">Lucene.Net.QueryParsers<span class="languageSpecificText"><span class="cs">.</span><span class="vb">.</span><span class="cpp">::</span><span class="nu">.</span><span class="fs">.</span></span>QueryParserConstants</a><br /> <span class="selflink">Lucene.Net.QueryParsers<span class="languageSpecificText"><span class="cs">.</span><span class="vb">.</span><span class="cpp">::</span><span class="nu">.</span><span class="fs">.</span></span>QueryParser</span><br /> <a href="fb37732e-7dac-fd4e-0782-57aaf5ce70bc.htm">Lucene.Net.QueryParsers<span class="languageSpecificText"><span class="cs">.</span><span class="vb">.</span><span class="cpp">::</span><span class="nu">.</span><span class="fs">.</span></span>MultiFieldQueryParser</a><br /></div><h1 class="heading"><span onclick="ExpandCollapse(seeAlsoToggle)" style="cursor:default;" onkeypress="ExpandCollapse_CheckKey(seeAlsoToggle, event)" tabindex="0"><img id="seeAlsoToggle" class="toggle" name="toggleSwitch" src="../icons/collapse_all.gif" />See Also</span></h1><div id="seeAlsoSection" class="section" name="collapseableSection" style=""><div class="seeAlsoStyle"><a href="75334850-5014-6ff0-d016-7eb3e337240f.htm">QueryParser Members</a></div><div class="seeAlsoStyle"><a href="0db878b9-579a-2fca-3dc9-ce519e5743a8.htm">Lucene.Net.QueryParsers Namespace</a></div></div></div><div id="footer"><div class="footerLine"><img width="100%" height="3px" src="../icons/footer.gif" alt="Footer image" title="Footer image" /></div><A NAME="feedback"></A><span id="fb" class="feedbackcss"></span></div></div></body></html> |