C# Класс Lucene.Net.QueryParsers.Flexible.Standard.Processors.BooleanQuery2ModifierNodeProcessor

This processor is used to apply the correct ModifierQueryNode to BooleanQueryNodes children. This is a variant of Precedence.Processors.BooleanModifiersQueryNodeProcessor which ignores precedence. The Parser.StandardSyntaxParser knows the rules of precedence, but lucene does not. e.g. (A AND B OR C AND D) ist treated like (+A +B +C +D). This processor walks through the query node tree looking for BooleanQueryNodes. If an AndQueryNode is found, every child, which is not a ModifierQueryNode or the ModifierQueryNode is Modifier.MOD_NONE, becomes a Modifier.MOD_REQ. For default BooleanQueryNode, it checks the default operator is Operator.AND, if it is, the same operation when an AndQueryNode is found is applied to it. Each BooleanQueryNode which direct parent is also a BooleanQueryNode is removed (to ignore the rules of precedence).
Наследование: IQueryNodeProcessor
Показать файл Открыть проект

Открытые методы

Метод Описание
BooleanQuery2ModifierNodeProcessor ( ) : Lucene.Net.QueryParsers.Flexible.Core.Config
GetQueryConfigHandler ( ) : QueryConfigHandler
Process ( IQueryNode queryTree ) : IQueryNode
SetQueryConfigHandler ( QueryConfigHandler queryConfigHandler ) : void

Защищенные методы

Метод Описание
FillChildrenBufferAndApplyModifiery ( IQueryNode parent ) : void
IsDefaultBooleanQueryNode ( IQueryNode toTest ) : bool
PostProcessNode ( IQueryNode node ) : IQueryNode
PreProcessNode ( IQueryNode node ) : IQueryNode
ProcessChildren ( IQueryNode queryTree ) : void
TagModifierButDoNotOverride ( IQueryNode node, Modifier mod ) : void

Приватные методы

Метод Описание
ApplyModifier ( IQueryNode node, Modifier mod ) : IQueryNode
ProcessIteration ( IQueryNode queryTree ) : IQueryNode

Описание методов

BooleanQuery2ModifierNodeProcessor() публичный Метод

public BooleanQuery2ModifierNodeProcessor ( ) : Lucene.Net.QueryParsers.Flexible.Core.Config
Результат Lucene.Net.QueryParsers.Flexible.Core.Config

FillChildrenBufferAndApplyModifiery() защищенный Метод

protected FillChildrenBufferAndApplyModifiery ( IQueryNode parent ) : void
parent IQueryNode
Результат void

GetQueryConfigHandler() публичный Метод

public GetQueryConfigHandler ( ) : QueryConfigHandler
Результат Lucene.Net.QueryParsers.Flexible.Core.Config.QueryConfigHandler

IsDefaultBooleanQueryNode() защищенный Метод

protected IsDefaultBooleanQueryNode ( IQueryNode toTest ) : bool
toTest IQueryNode
Результат bool

PostProcessNode() защищенный Метод

protected PostProcessNode ( IQueryNode node ) : IQueryNode
node IQueryNode
Результат IQueryNode

PreProcessNode() защищенный Метод

protected PreProcessNode ( IQueryNode node ) : IQueryNode
node IQueryNode
Результат IQueryNode

Process() публичный Метод

public Process ( IQueryNode queryTree ) : IQueryNode
queryTree IQueryNode
Результат IQueryNode

ProcessChildren() защищенный Метод

protected ProcessChildren ( IQueryNode queryTree ) : void
queryTree IQueryNode
Результат void

SetQueryConfigHandler() публичный Метод

public SetQueryConfigHandler ( QueryConfigHandler queryConfigHandler ) : void
queryConfigHandler Lucene.Net.QueryParsers.Flexible.Core.Config.QueryConfigHandler
Результат void

TagModifierButDoNotOverride() защищенный Метод

protected TagModifierButDoNotOverride ( IQueryNode node, Modifier mod ) : void
node IQueryNode
mod Modifier
Результат void