D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
vendor
/
plesk
/
zendsearch
/
library
/
ZendSearch
/
Lucene
/
Search
/
QueryEntry
/
Filename :
Phrase.php
back
Copy
<?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @package Zend_Search */ namespace ZendSearch\Lucene\Search\QueryEntry; /** * @category Zend * @package Zend_Search_Lucene * @subpackage Search */ class Phrase extends AbstractQueryEntry { /** * Phrase value * * @var string */ private $_phrase; /** * Field * * @var string|null */ private $_field; /** * Proximity phrase query * * @var boolean */ private $_proximityQuery = false; /** * Words distance, used for proximiti queries * * @var integer */ private $_wordsDistance = 0; /** * Object constractor * * @param string $phrase * @param string $field */ public function __construct($phrase, $field) { $this->_phrase = $phrase; $this->_field = $field; } /** * Process modifier ('~') * * @param mixed $parameter */ public function processFuzzyProximityModifier($parameter = null) { $this->_proximityQuery = true; if ($parameter !== null) { $this->_wordsDistance = $parameter; } } /** * Transform entry to a subquery * * @param string $encoding * @throws \ZendSearch\Lucene\Search\Exception\QueryParserException * @return \ZendSearch\Lucene\Search\Query\AbstractQuery */ public function getQuery($encoding) { $query = new \ZendSearch\Lucene\Search\Query\Preprocessing\Phrase($this->_phrase, $encoding, ($this->_field !== null)? iconv($encoding, 'UTF-8', $this->_field) : null); if ($this->_proximityQuery) { $query->setSlop($this->_wordsDistance); } $query->setBoost($this->_boost); return $query; } }