## 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
`MultiFieldQueryNodeProcessor()`

Method Summary
`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 Detail

### MultiFieldQueryNodeProcessor

    public MultiFieldQueryNodeProcessor()

Method Detail

### 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

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.