﻿<!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.Processors
   | Apache Lucene.NET 4.8.0-beta00008 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Lucene.Net.QueryParsers.Flexible.Core.Processors
   | Apache Lucene.NET 4.8.0-beta00008 Documentation ">
    <meta name="generator" content="docfx 2.50.0.0">
    
    <link rel="shortcut icon" href="../../logo/favicon.ico">
    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../../styles/docfx.css">
    <link rel="stylesheet" href="../../styles/main.css">
    <meta property="docfx:navrel" content="../../toc.html">
    <meta property="docfx:tocrel" content="../toc.html">
    
    <meta property="docfx:rel" content="../../">
    
  </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="../../index.html">
                <img id="logo" class="svg" src="../../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" id="breadcrumb">
            <ul class="breadcrumb">
              <li></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.Processors">
  
  <h1 id="Lucene_Net_QueryParsers_Flexible_Core_Processors" data-uid="Lucene.Net.QueryParsers.Flexible.Core.Processors" class="text-break">Namespace Lucene.Net.QueryParsers.Flexible.Core.Processors
  </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>Interfaces and implementations used by query node processors</p>
<h2 id="query-node-processors">Query Node Processors</h2>
<p> The package <tt>org.apache.lucene.queryParser.processors</tt> contains interfaces that should be implemented by every query node processor. </p>
<p> The interface that every query node processor should implement is <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html">QueryNodeProcessor</a>. </p>
<p> A query node processor should be used to process a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree. <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> trees can be programmatically created or generated by a text parser. See <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Parser.html">Lucene.Net.QueryParsers.Flexible.Core.Parser</a> for more details about text parsers. </p>
<p> A query node processor should be used to process a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> tree. <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a> trees can be programmatically created or generated by a text parser. See <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Parser.html">Lucene.Net.QueryParsers.Flexible.Core.Parser</a> for more details about text parsers. </p>
<p> A pipeline of processors can be assembled using <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorPipeline.html">QueryNodeProcessorPipeline</a>. </p>
<p> Implementors may want to extend &lt;xref:Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorImpl&gt;, which simplifies the implementation, because it walks automatically the <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.QueryNode.html">QueryNode</a>. See &lt;xref:Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorImpl&gt; for more details. </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.Processors.NoChildOptimizationQueryNodeProcessor.html">NoChildOptimizationQueryNodeProcessor</a></h4>
      <section><p>A <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.NoChildOptimizationQueryNodeProcessor.html">NoChildOptimizationQueryNodeProcessor</a> removes every
BooleanQueryNode, BoostQueryNode, TokenizedPhraseQueryNode or
ModifierQueryNode that do not have a valid children.
<p>
Example: When the children of these nodes are removed for any reason then the
nodes may become invalid.
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html">QueryNodeProcessor</a></h4>
      <section><p>This is a default implementation for the <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.IQueryNodeProcessor.html">IQueryNodeProcessor</a>
interface, it&apos;s an abstract class, so it should be extended by classes that
want to process a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.IQueryNode.html">IQueryNode</a> tree.
<p>
This class process <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.IQueryNode.html">IQueryNode</a>s from left to right in the tree. While
it&apos;s walking down the tree, for every node,
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_QueryNodeProcessor_PreProcessNode_Lucene_Net_QueryParsers_Flexible_Core_Nodes_IQueryNode_">PreProcessNode(IQueryNode)</a> is invoked. After a node&apos;s children are
processed, <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_QueryNodeProcessor_PostProcessNode_Lucene_Net_QueryParsers_Flexible_Core_Nodes_IQueryNode_">PostProcessNode(IQueryNode)</a> is invoked for that node.
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_QueryNodeProcessor_SetChildrenOrder_System_Collections_Generic_IList_Lucene_Net_QueryParsers_Flexible_Core_Nodes_IQueryNode__">SetChildrenOrder(IList&lt;IQueryNode&gt;)</a> is invoked before
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_QueryNodeProcessor_PostProcessNode_Lucene_Net_QueryParsers_Flexible_Core_Nodes_IQueryNode_">PostProcessNode(IQueryNode)</a> only if the node has at least one child,
in <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_QueryNodeProcessor_SetChildrenOrder_System_Collections_Generic_IList_Lucene_Net_QueryParsers_Flexible_Core_Nodes_IQueryNode__">SetChildrenOrder(IList&lt;IQueryNode&gt;)</a> the implementor might redefine the
children order or remove any children from the children list.
</p>
<p>
Here is an example about how it process the nodes:
</p></p>
<pre>
     a
    / \
   b   e
  / \
 c   d
</pre>
<p><p>
Here is the order the methods would be invoked for the tree described above:
</p></p>
<pre><code>    PreProcessNode( a );
    PreProcessNode( b );
    PreProcessNode( c );
    PostProcessNode( c );
    PreProcessNode( d );
    PostProcessNode( d );
    SetChildrenOrder( bChildrenList );
    PostProcessNode( b );
    PreProcessNode( e );
    PostProcessNode( e );
    SetChildrenOrder( aChildrenList );
    PostProcessNode( a )</code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorPipeline.html">QueryNodeProcessorPipeline</a></h4>
      <section><p>A <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorPipeline.html">QueryNodeProcessorPipeline</a> class should be used to build a query
node processor pipeline.
<p>
When a query node tree is processed using this class, it passes the query
node tree to each processor on the pipeline and the result from each
processor is passed to the next one, always following the order the
processors were on the pipeline.
<p>
When a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Config.QueryConfigHandler.html">QueryConfigHandler</a> object is set on a
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorPipeline.html">QueryNodeProcessorPipeline</a>, it also takes care of setting this
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Config.QueryConfigHandler.html">QueryConfigHandler</a> on all processor on pipeline.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.RemoveDeletedQueryNodesProcessor.html">RemoveDeletedQueryNodesProcessor</a></h4>
      <section><p>A <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.QueryNodeProcessorPipeline.html">QueryNodeProcessorPipeline</a> class removes every instance of
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.DeletedQueryNode.html">DeletedQueryNode</a> from a query node tree. If the resulting root node
is a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.DeletedQueryNode.html">DeletedQueryNode</a>, <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.MatchNoDocsQueryNode.html">MatchNoDocsQueryNode</a> is returned.</p>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.IQueryNodeProcessor.html">IQueryNodeProcessor</a></h4>
      <section><p>An <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.IQueryNodeProcessor.html">IQueryNodeProcessor</a> is an interface for classes that process a
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Nodes.IQueryNode.html">IQueryNode</a> tree.
<p>
The implementor of this class should perform some operation on a query node
tree and return the same or another query node tree.
</p>
<p>
It also may carry a <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Config.QueryConfigHandler.html">QueryConfigHandler</a> object that contains
configuration about the query represented by the query tree or the
collection/index where it&apos;s intended to be executed.
</p>
<p>
In case there is any <a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Config.QueryConfigHandler.html">QueryConfigHandler</a> associated to the query tree
to be processed, it should be set using
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.IQueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_IQueryNodeProcessor_SetQueryConfigHandler_Lucene_Net_QueryParsers_Flexible_Core_Config_QueryConfigHandler_">SetQueryConfigHandler(QueryConfigHandler)</a> before
<a class="xref" href="Lucene.Net.QueryParsers.Flexible.Core.Processors.IQueryNodeProcessor.html#Lucene_Net_QueryParsers_Flexible_Core_Processors_IQueryNodeProcessor_Process_Lucene_Net_QueryParsers_Flexible_Core_Nodes_IQueryNode_">Process(IQueryNode)</a> is invoked.
</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-beta00008/src/Lucene.Net.QueryParser/Flexible/Core/Processors/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="../../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../../styles/docfx.js"></script>
    <script type="text/javascript" src="../../styles/main.js"></script>
  </body>
</html>
