Search/Lucene/Search/QueryParser.php

Show: inherited
Table of Contents

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

Package: Zend\Search\Lucene\Search

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

Constant  B_OR = 0

Boolean operators constants

Constant  B_AND = 1
Constant  ST_COMMON_QUERY_ELEMENT = 0

Query parser State Machine states

Constant  ST_CLOSEDINT_RQ_START = 1
Constant  ST_CLOSEDINT_RQ_FIRST_TERM = 2
Constant  ST_CLOSEDINT_RQ_TO_TERM = 3
Constant  ST_CLOSEDINT_RQ_LAST_TERM = 4
Constant  ST_CLOSEDINT_RQ_END = 5
Constant  ST_OPENEDINT_RQ_START = 6
Constant  ST_OPENEDINT_RQ_FIRST_TERM = 7
Constant  ST_OPENEDINT_RQ_TO_TERM = 8
Constant  ST_OPENEDINT_RQ_LAST_TERM = 9
Constant  ST_OPENEDINT_RQ_END = 10

Properties

Propertyprivate\Zend_Search_Lucene_Search_QueryParserContext $_context =

Current query parser context

Propertyprivatearray $_contextStack =

Context stack

Details
Type
array
Propertyprivateinteger|string $_currentState = null
inherited

Current state

Inherited from: \Zend_Search_Lucene_FSM::$$_currentState
Default valuenullDetails
Type
integer | string
Inherited_from
\Zend_Search_Lucene_FSM::$$_currentState  
Propertyprivateinteger|string $_currentToken =

Current token

Details
Type
integer | string
Propertyprivatestring $_defaultEncoding = ''

Query string default encoding

Default value''Details
Type
string
Propertyprivateinteger $_defaultOperator = self::B_OR

Default boolean queries operator

Default valueself::B_ORDetails
Type
integer
Propertyprivatestring $_encoding =

Query string encoding

Details
Type
string
Propertyprivatearray $_entryActions = array()
inherited

List of entry actions Each action executes when entering the state

Inherited from: \Zend_Search_Lucene_FSM::$$_entryActions

[state] => action

Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_entryActions  
Propertyprivatearray $_exitActions = array()
inherited

List of exit actions Each action executes when exiting the state

Inherited from: \Zend_Search_Lucene_FSM::$$_exitActions

[state] => action

Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_exitActions  
Propertyprivatearray $_inputActions = array()
inherited

List of input actions Each action executes when entering the state

Inherited from: \Zend_Search_Lucene_FSM::$$_inputActions

[state][input] => action

Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_inputActions  
Propertyprivatearray $_inputAphabet = array()
inherited

Input alphabet

Inherited from: \Zend_Search_Lucene_FSM::$$_inputAphabet
Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_inputAphabet  
Propertyprivate\Zend_Search_Lucene_Search_QueryParser $_instance = null
static

Parser instance

Default valuenullDetails
Type
\Zend_Search_Lucene_Search_QueryParser
Propertyprivate\Zend_Search_Lucene_Search_QueryToken $_lastToken = null

Last token

It can be processed within FSM states, but this addirional state simplifies FSM

Default valuenullDetails
Type
\Zend_Search_Lucene_Search_QueryToken
Propertyprivate\Zend_Search_Lucene_Search_QueryLexer $_lexer =

Query lexer

Propertyprivatestring $_rqFirstTerm = null

Range query first term

Default valuenullDetails
Type
string
Propertyprivatearray $_rules = array()
inherited

State transition table

Inherited from: \Zend_Search_Lucene_FSM::$$_rules

[sourceState][input] => targetState

Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_rules  
Propertyprivatearray $_states = array()
inherited

Machine States alphabet

Inherited from: \Zend_Search_Lucene_FSM::$$_states
Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_states  
Propertyprivateboolean $_suppressQueryParsingExceptions = true

Defines 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.

Default valuetrueDetails
Type
boolean
Propertyprivatearray $_tokens =

Tokens list Array of Zend_Search_Lucene_Search_QueryToken objects

Details
Type
array
Propertyprivatearray $_transitionActions = array()
inherited

List of input actions Each action executes when entering the state

Inherited from: \Zend_Search_Lucene_FSM::$$_transitionActions

[state1][state2] => action

Default valuearray()Details
Type
array
Inherited_from
\Zend_Search_Lucene_FSM::$$_transitionActions  

Methods

methodpublic__construct() : void

Parser 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.

methodprivate_getInstance() : \Zend_Search_Lucene_Search_QueryParser
static

Get query parser instance

Returns
Type Description
\Zend_Search_Lucene_Search_QueryParser
methodpublicaddEntryAction(integer | string $state, \Zend_Search_Lucene_FSMAction $action) : void
inherited

Add state entry action.

Inherited from: \Zend_Search_Lucene_FSM::addEntryAction()

Several entry actions are allowed. Action execution order is defined by addEntryAction() calls

Parameters
Name Type Description
$state integer | string
$action \Zend_Search_Lucene_FSMAction
methodpublicaddExitAction(integer | string $state, \Zend_Search_Lucene_FSMAction $action) : void
inherited

Add state exit action.

Inherited from: \Zend_Search_Lucene_FSM::addExitAction()

Several exit actions are allowed. Action execution order is defined by addEntryAction() calls

Parameters
Name Type Description
$state integer | string
$action \Zend_Search_Lucene_FSMAction
methodpublicaddInputAction(integer | string $state,  $inputSymbol, \Zend_Search_Lucene_FSMAction $action) : void
inherited

Add 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

Parameters
Name Type Description
$state integer | string
$inputSymbol
$action \Zend_Search_Lucene_FSMAction
methodpublicaddInputSymbol(integer | string $inputSymbol) : void
inherited

Add symbol to the input alphabet

Inherited from: \Zend_Search_Lucene_FSM::addInputSymbol()
Parameters
Name Type Description
$inputSymbol integer | string
methodpublicaddInputSymbols(array $inputAphabet) : void
inherited

Add symbols to the input alphabet

Inherited from: \Zend_Search_Lucene_FSM::addInputSymbols()
Parameters
Name Type Description
$inputAphabet array
methodpublicaddPhraseEntry() : void

Add phrase to a query

methodpublicaddRule(integer | string $sourceState, integer | string $input, integer | string $targetState, \Zend_Search_Lucene_FSMAction | null $inputAction = null) : void
inherited

Add symbol to the input alphabet

Inherited from: \Zend_Search_Lucene_FSM::addRule()
Parameters
Name Type Description
$sourceState integer | string
$input integer | string
$targetState integer | string
$inputAction \Zend_Search_Lucene_FSMAction | null
Throws
Exception Description
\Zend_Search_Exception
methodpublicaddRules(array $rules) : void
inherited

Add transition rules

Inherited from: \Zend_Search_Lucene_FSM::addRules()

array structure: array( array(sourseState, input, targetState[, inputAction]), array(sourseState, input, targetState[, inputAction]), array(sourseState, input, targetState[, inputAction]), ... )

Parameters
Name Type Description
$rules array
methodpublicaddState(integer | string $state) : void
inherited

Add state to the state machine

Inherited from: \Zend_Search_Lucene_FSM::addState()
Parameters
Name Type Description
$state integer | string
methodpublicaddStates(array $states) : void
inherited

Add states to the state machine

Inherited from: \Zend_Search_Lucene_FSM::addStates()
Parameters
Name Type Description
$states array
methodpublicaddTermEntry() : void

Add term to a query

methodpublicaddTransitionAction(integer | string $sourceState, integer | string $targetState, \Zend_Search_Lucene_FSMAction $action) : void
inherited

Add 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

Parameters
Name Type Description
$sourceState integer | string
$targetState integer | string
$action \Zend_Search_Lucene_FSMAction
methodpublicclosedRQFirstTerm() : void

Process first range query term (closed interval)

methodpublicclosedRQLastTerm() : void

Process last range query term (closed interval)

methodpublicdontSuppressQueryParsingExceptions() : void
static

Turn off 'suppress query parser exceptions' mode.

methodpublicescape(string $keyword) : string
static

Escape keyword to force it to be parsed as one term

Parameters
Name Type Description
$keyword string
Returns
Type Description
string
methodpublicgetDefaultEncoding() : string
static

Get query string default encoding

Returns
Type Description
string
methodpublicgetDefaultOperator() : integer
static

Get default boolean operator

Returns
Type Description
integer
methodpublicgetState() : integer | string
inherited

Get FSM state.

Inherited from: \Zend_Search_Lucene_FSM::getState()
Returns
Type Description
integer | string $state|null
methodpubliclogicalOperator() : void

Process logical operator

methodpublicopenedRQFirstTerm() : void

Process first range query term (opened interval)

methodpublicopenedRQLastTerm() : void

Process last range query term (opened interval)

methodpublicparse(string $strQuery, string $encoding = null) : \Zend_Search_Lucene_Search_Query
static

Parses a query string

Parameters
Name Type Description
$strQuery string
$encoding string
Returns
Type Description
\Zend_Search_Lucene_Search_Query
Throws
Exception Description
\Zend_Search_Lucene_Search_QueryParserException
methodpublicprocess(mixed $input) : void
inherited

Process an input

Inherited from: \Zend_Search_Lucene_FSM::process()
Parameters
Name Type Description
$input mixed
Throws
Exception Description
\Zend_Search_Exception
methodpublicprocessFuzzyProximityModifier() : void

Process fuzzy search/proximity modifier - '~'

methodpublicprocessModifierParameter() : void

Process modifier parameter

Throws
Exception Description
\Zend_Search_Lucene_Exception
methodpublicqueryParsingExceptionsSuppressed() : boolean
static

Check 'suppress query parser exceptions' mode.

Returns
Type Description
boolean
methodpublicreset() : void
inherited

Inherited from: \Zend_Search_Lucene_FSM::reset()
methodpublicsetDefaultEncoding(string $encoding) : void
static

Set query string default encoding

Parameters
Name Type Description
$encoding string
methodpublicsetDefaultOperator(integer $operator) : void
static

Set default boolean operator

Parameters
Name Type Description
$operator integer
methodpublicsetField() : void

Set entry field

methodpublicsetSign() : void

Set entry sign

methodpublicsetState(integer | string $state) : void
inherited

Set FSM state.

Inherited from: \Zend_Search_Lucene_FSM::setState()

No any action is invoked

Parameters
Name Type Description
$state integer | string
Throws
Exception Description
\Zend_Search_Exception
methodpublicsubqueryEnd() : void

End subquery

methodpublicsubqueryStart() : void

Start subquery

methodpublicsuppressQueryParsingExceptions() : void
static

Turn on 'suppress query parser exceptions' mode.

Documentation was generated by phpDocumentor 2.0.0a8.