Search/Lucene/Search/QueryParser.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Search_Lucene
- Subpackage
- Search
- Version
- $Id: QueryParser.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Search_Lucene_Search_QueryParser
Abstract Finite State Machine
Take a look on Wikipedia state machine description: http://en.wikipedia.org/wiki/Finite_state_machine
Any type of Transducers (Moore machine or Mealy machine) also may be implemented by using this abstract FSM. process() methods invokes a specified actions which may construct FSM output. Actions may be also used to signal, that we have reached Accept State
- Parent(s)
- \Zend_Search_Lucene_FSM
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants
Properties

integer|string $_currentState = null
nullDetails- Type
- integer | string
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_currentState

integer $_defaultOperator = self::B_ORDefault boolean queries operator
self::B_ORDetails- Type
- integer

array $_entryActions = array()List of entry actions Each action executes when entering the state
Inherited from: \Zend_Search_Lucene_FSM::$$_entryActions[state] => action
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_entryActions

array $_exitActions = array()List of exit actions Each action executes when exiting the state
Inherited from: \Zend_Search_Lucene_FSM::$$_exitActions[state] => action
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_exitActions

array $_inputActions = array()List of input actions Each action executes when entering the state
Inherited from: \Zend_Search_Lucene_FSM::$$_inputActions[state][input] => action
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_inputActions

array $_inputAphabet = array()
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_inputAphabet

\Zend_Search_Lucene_Search_QueryParser $_instance = nullParser instance
nullDetails

\Zend_Search_Lucene_Search_QueryToken $_lastToken = nullLast token
It can be processed within FSM states, but this addirional state simplifies FSM
nullDetails

array $_rules = array()
[sourceState][input] => targetState
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_rules

array $_states = array()
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_states

boolean $_suppressQueryParsingExceptions = trueDefines query parsing mode.
If this option is turned on, then query parser suppress query parser exceptions and constructs multi-term query using all words from a query.
That helps to avoid exceptions caused by queries, which don't conform to query language, but limits possibilities to check, that query entered by user has some inconsistencies.
Default is true.
Use Zend_Search_Lucene::suppressQueryParsingExceptions(), Zend_Search_Lucene::dontSuppressQueryParsingExceptions() and Zend_Search_Lucene::checkQueryParsingExceptionsSuppressMode() to operate with this setting.
trueDetails- Type
- boolean

array $_tokens = Tokens list Array of Zend_Search_Lucene_Search_QueryToken objects
- Type
- array

array $_transitionActions = array()List of input actions Each action executes when entering the state
Inherited from: \Zend_Search_Lucene_FSM::$$_transitionActions[state1][state2] => action
array()Details- Type
- array
- Inherited_from
- \Zend_Search_Lucene_FSM::$$_transitionActions
Methods

__construct() : voidParser constructor
$states is an array of integers or strings with a list of possible machine states constructor treats fist list element as a sturt state (assignes it to $_current state). It may be reassigned by setState() call. States list may be empty and can be extended later by addState() or addStates() calls.
$inputAphabet is the same as $states, but represents input alphabet it also may be extended later by addInputSymbols() or addInputSymbol() calls.
$rules parameter describes FSM transitions and has a structure: array( array(sourseState, input, targetState[, inputAction]), array(sourseState, input, targetState[, inputAction]), array(sourseState, input, targetState[, inputAction]), ... ) Rules also can be added later by addRules() and addRule() calls.
FSM actions are very flexible and may be defined by addEntryAction(), addExitAction(), addInputAction() and addTransitionAction() calls.

_getInstance() : \Zend_Search_Lucene_Search_QueryParserGet query parser instance
| Type | Description |
|---|---|
| \Zend_Search_Lucene_Search_QueryParser |

addEntryAction(integer | string $state, \Zend_Search_Lucene_FSMAction $action) : void
Several entry actions are allowed. Action execution order is defined by addEntryAction() calls
| Name | Type | Description |
|---|---|---|
| $state | integer | string | |
| $action | \Zend_Search_Lucene_FSMAction |

addExitAction(integer | string $state, \Zend_Search_Lucene_FSMAction $action) : void
Several exit actions are allowed. Action execution order is defined by addEntryAction() calls
| Name | Type | Description |
|---|---|---|
| $state | integer | string | |
| $action | \Zend_Search_Lucene_FSMAction |

addInputAction(integer | string $state, $inputSymbol, \Zend_Search_Lucene_FSMAction $action) : voidAdd input action (defined by {state, input} pair).
Inherited from: \Zend_Search_Lucene_FSM::addInputAction()Several input actions are allowed. Action execution order is defined by addInputAction() calls
| Name | Type | Description |
|---|---|---|
| $state | integer | string | |
| $inputSymbol | ||
| $action | \Zend_Search_Lucene_FSMAction |

addInputSymbol(integer | string $inputSymbol) : void
| Name | Type | Description |
|---|---|---|
| $inputSymbol | integer | string |

addInputSymbols(array $inputAphabet) : voidAdd symbols to the input alphabet
Inherited from: \Zend_Search_Lucene_FSM::addInputSymbols()| Name | Type | Description |
|---|---|---|
| $inputAphabet | array |

addRule(integer | string $sourceState, integer | string $input, integer | string $targetState, \Zend_Search_Lucene_FSMAction | null $inputAction = null) : void
| Name | Type | Description |
|---|---|---|
| $sourceState | integer | string | |
| $input | integer | string | |
| $targetState | integer | string | |
| $inputAction | \Zend_Search_Lucene_FSMAction | null |
| Exception | Description |
|---|---|
| \Zend_Search_Exception |

addRules(array $rules) : void
array structure: array( array(sourseState, input, targetState[, inputAction]), array(sourseState, input, targetState[, inputAction]), array(sourseState, input, targetState[, inputAction]), ... )
| Name | Type | Description |
|---|---|---|
| $rules | array |

addTransitionAction(integer | string $sourceState, integer | string $targetState, \Zend_Search_Lucene_FSMAction $action) : voidAdd transition action (defined by {state, input} pair).
Inherited from: \Zend_Search_Lucene_FSM::addTransitionAction()Several transition actions are allowed. Action execution order is defined by addTransitionAction() calls
| Name | Type | Description |
|---|---|---|
| $sourceState | integer | string | |
| $targetState | integer | string | |
| $action | \Zend_Search_Lucene_FSMAction |

closedRQLastTerm() : voidProcess last range query term (closed interval)
| Exception | Description |
|---|---|
| \Zend_Search_Lucene_Search_QueryParserException |

escape(string $keyword) : stringEscape keyword to force it to be parsed as one term
| Name | Type | Description |
|---|---|---|
| $keyword | string |
| Type | Description |
|---|---|
| string |

getDefaultEncoding() : stringGet query string default encoding
| Type | Description |
|---|---|
| string |

openedRQLastTerm() : voidProcess last range query term (opened interval)
| Exception | Description |
|---|---|
| \Zend_Search_Lucene_Search_QueryParserException |

parse(string $strQuery, string $encoding = null) : \Zend_Search_Lucene_Search_QueryParses a query string
| Name | Type | Description |
|---|---|---|
| $strQuery | string | |
| $encoding | string |
| Type | Description |
|---|---|
| \Zend_Search_Lucene_Search_Query |
| Exception | Description |
|---|---|
| \Zend_Search_Lucene_Search_QueryParserException |

process(mixed $input) : void
| Name | Type | Description |
|---|---|---|
| $input | mixed |
| Exception | Description |
|---|---|
| \Zend_Search_Exception |

processModifierParameter() : voidProcess modifier parameter
| Exception | Description |
|---|---|
| \Zend_Search_Lucene_Exception |

queryParsingExceptionsSuppressed() : booleanCheck 'suppress query parser exceptions' mode.
| Type | Description |
|---|---|
| boolean |

setDefaultEncoding(string $encoding) : voidSet query string default encoding
| Name | Type | Description |
|---|---|---|
| $encoding | string |

setDefaultOperator(integer $operator) : voidSet default boolean operator
| Name | Type | Description |
|---|---|---|
| $operator | integer |

setState(integer | string $state) : void
No any action is invoked
| Name | Type | Description |
|---|---|---|
| $state | integer | string |
| Exception | Description |
|---|---|
| \Zend_Search_Exception |