MultiFieldQueryNodeProcessor (Lucene 10.5.1 queryparser API)
Description: declaration: package: org.apache.lucene.queryparser.flexible.standard.processors, class: MultiFieldQueryNodeProcessor

Package org.apache.lucene.queryparser.flexible.standard.processors

# Class MultiFieldQueryNodeProcessor

java.lang.Object
org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
org.apache.lucene.queryparser.flexible.standard.processors.MultiFieldQueryNodeProcessor

All Implemented Interfaces:
  `QueryNodeProcessor`

public class MultiFieldQueryNodeProcessor extends QueryNodeProcessorImpl
This processor is used to expand terms so the query looks for the same term in different fields. It also boosts a query based on its field.
This processor looks for every `FieldableNode` contained in the query node tree. If a `FieldableNode` is found, it checks if there is a `StandardQueryConfigHandler.ConfigurationKeys.MULTI_FIELDS` defined in the `QueryConfigHandler`. If there is, the `FieldableNode` is cloned N times and the clones are added to a `BooleanQueryNode` together with the original node. N is defined by the number of fields that it will be expanded to. The `BooleanQueryNode` is returned.

See Also:
  - `StandardQueryConfigHandler.ConfigurationKeys.MULTI_FIELDS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MultiFieldQueryNodeProcessor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected QueryNode`
  `postProcessNode(QueryNode node)`
  This method is invoked for every node when walking up the tree.
  `protected QueryNode`
  `preProcessNode(QueryNode node)`
  This method is invoked for every node when walking down the tree.
  `protected void`
  `processChildren(QueryNode queryTree)`
  This method is called every time a child is processed.
  `protected List<QueryNode>`
  `setChildrenOrder(List<QueryNode> children)`
  This method is invoked for every node that has at least on child.

  ### Methods inherited from class org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl

  `getQueryConfigHandler, process, setQueryConfigHandler`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MultiFieldQueryNodeProcessor

    public MultiFieldQueryNodeProcessor()

- ## Method Details

  - ### postProcessNode

    protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException
    Description copied from class: `QueryNodeProcessorImpl`
    This method is invoked for every node when walking up the tree.
    Specified by:
      `postProcessNode` in class `QueryNodeProcessorImpl`
    Parameters:
      `node` - node the query node to be post-processed
    Returns:
      a query node
    Throws:
      `QueryNodeException` - if something goes wrong during the query node processing

  - ### processChildren

    protected void processChildren(QueryNode queryTree) throws QueryNodeException
    Description copied from class: `QueryNodeProcessorImpl`
    This method is called every time a child is processed.
    Overrides:
      `processChildren` in class `QueryNodeProcessorImpl`
    Parameters:
      `queryTree` - the query node child to be processed
    Throws:
      `QueryNodeException` - if something goes wrong during the query node processing

  - ### preProcessNode

    protected QueryNode preProcessNode(QueryNode node) throws QueryNodeException
    Description copied from class: `QueryNodeProcessorImpl`
    This method is invoked for every node when walking down the tree.
    Specified by:
      `preProcessNode` in class `QueryNodeProcessorImpl`
    Parameters:
      `node` - the query node to be pre-processed
    Returns:
      a query node
    Throws:
      `QueryNodeException` - if something goes wrong during the query node processing

  - ### setChildrenOrder

    protected List<QueryNode> setChildrenOrder(List<QueryNode> children) throws QueryNodeException
    Description copied from class: `QueryNodeProcessorImpl`
    This method is invoked for every node that has at least on child. It's invoked right before `QueryNodeProcessorImpl.postProcessNode(QueryNode)` is invoked.
    Specified by:
      `setChildrenOrder` in class `QueryNodeProcessorImpl`
    Parameters:
      `children` - the list containing all current node's children
    Returns:
      a new list containing all children that should be set to the current node
    Throws:
      `QueryNodeException` - if something goes wrong during the query node processing