Class RemoveEmptyNonLeafQueryNodeProcessor
This processor removes every IQueryNode that is not a leaf and has not children. If after processing the entire tree the root node is not a leaf and has no children, a MatchNoDocsQueryNode object is returned.
This processor is used at the end of a pipeline to avoid invalid query node tree structures like a GroupQueryNode or ModifierQueryNode with no children.Implements
Inherited Members
Namespace: Lucene.Net.QueryParsers.Flexible.Standard.Processors
Assembly: Lucene.Net.QueryParser.dll
Syntax
public class RemoveEmptyNonLeafQueryNodeProcessor : QueryNodeProcessor, IQueryNodeProcessor
  Constructors
RemoveEmptyNonLeafQueryNodeProcessor()
This processor removes every IQueryNode that is not a leaf and has not children. If after processing the entire tree the root node is not a leaf and has no children, a MatchNoDocsQueryNode object is returned.
This processor is used at the end of a pipeline to avoid invalid query node tree structures like a GroupQueryNode or ModifierQueryNode with no children.Declaration
public RemoveEmptyNonLeafQueryNodeProcessor()
  See Also
Methods
PostProcessNode(IQueryNode)
This method is invoked for every node when walking up the tree.
Declaration
protected override IQueryNode PostProcessNode(IQueryNode node)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IQueryNode | node | node the query node to be post-processed  | 
      
Returns
| Type | Description | 
|---|---|
| IQueryNode | a query node  | 
      
Overrides
Exceptions
| Type | Condition | 
|---|---|
| QueryNodeException | if something goes wrong during the query node processing  | 
      
See Also
PreProcessNode(IQueryNode)
This method is invoked for every node when walking down the tree.
Declaration
protected override IQueryNode PreProcessNode(IQueryNode node)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IQueryNode | node | the query node to be pre-processed  | 
      
Returns
| Type | Description | 
|---|---|
| IQueryNode | a query node  | 
      
Overrides
Exceptions
| Type | Condition | 
|---|---|
| QueryNodeException | if something goes wrong during the query node processing  | 
      
See Also
Process(IQueryNode)
Processes a query node tree. It may return the same or another query tree.
I should never return null.
Declaration
public override IQueryNode Process(IQueryNode queryTree)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IQueryNode | queryTree | tree root node  | 
      
Returns
| Type | Description | 
|---|---|
| IQueryNode | the processed query tree  | 
      
Overrides
See Also
SetChildrenOrder(IList<IQueryNode>)
This method is invoked for every node that has at least on child. It's invoked right before PostProcessNode(IQueryNode) is invoked.
Declaration
protected override IList<IQueryNode> SetChildrenOrder(IList<IQueryNode> children)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IList<IQueryNode> | children | the list containing all current node's children  | 
      
Returns
| Type | Description | 
|---|---|
| IList<IQueryNode> | a new list containing all children that should be set to the current node  | 
      
Overrides
Exceptions
| Type | Condition | 
|---|---|
| QueryNodeException | if something goes wrong during the query node processing  |