Spec-Zone.ru › Yii 2.0

Класс yii\sphinx\MatchExpression

Все классы | Свойства | Методы
Наследование yii\sphinx\MatchExpression » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0.6
Исходный код https://github.com/yiisoft/yii2-sphinx/blob/master/MatchExpression.php

MatchExpression представляет выражение MATCH SphinxQL.

В сочетании с yii\sphinx\MatchBuilder этот класс обеспечивает возможность построения сложных выражений MATCH. Экземпляр этого класса может быть передан в yii\sphinx\Query::match(). Например:

use yii\sphinx\Query;
use yii\sphinx\MatchExpression;

$rows = (new Query())
    ->match(new MatchExpression('@title :title', ['title' => 'Yii']))
    ->all();

Вы можете использовать match(), andMatch() и orMatch() для объединения нескольких условий. Например:

use yii\sphinx\Query;
use yii\sphinx\MatchExpression;

$rows = (new Query())
    ->match(
        // produces '((@title "Yii") (@author "Paul")) | (@content "Sphinx")' :
        (new MatchExpression())
            ->match(['title' => 'Yii'])
            ->andMatch(['author' => 'Paul'])
            ->orMatch(['content' => 'Sphinx'])
    )
    ->all();

Вы также можете создавать выражения со специальными операторами, такими как 'MAYBE', 'PROXIMITY' и т. д. Например:

use yii\sphinx\Query;
use yii\sphinx\MatchExpression;

$rows = (new Query())
    ->match(
        // produces '@title "Yii" MAYBE "Sphinx"' :
        (new MatchExpression())->match([
            'maybe',
            'title',
            'Yii',
            'Sphinx',
        ])
    )
    ->all();

$rows = (new Query())
    ->match(
        // produces '@title "Yii"~10' :
        (new MatchExpression())->match([
            'proximity',
            'title',
            'Yii',
            10,
        ])
    )
    ->all();

Примечание: параметры, переданные через params() или сгенерированные из массива условий, будут автоматически экранированы с помощью yii\sphinx\Connection::escapeMatchValue().

См. также:

  • yii\sphinx\MatchBuilder
  • http://sphinxsearch.com/docs/current.html#extended-syntax

Общедоступные свойства

Свойство Тип Описание Определено
$match string|array|yii\db\Expression Выражение MATCH. yii\sphinx\MatchExpression
$params array Список значений параметров выражения MATCH, индексированных по заполнительным параметрам. yii\sphinx\MatchExpression

Общедоступные методы

Метод Описание Определено
__call() Вызывает именованный метод, который не является методом класса. yii\base\Object
__construct() Конструктор. yii\sphinx\MatchExpression
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т. е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
addParams() Добавляет дополнительные параметры для парсинга в запрос. yii\sphinx\MatchExpression
andFilterMatch() Добавляет дополнительное условие MATCH к существующему, но игнорирует пустые операнды. yii\sphinx\MatchExpression
andMatch() Добавляет дополнительное условие MATCH к существующему. yii\sphinx\MatchExpression
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное имя этого класса. yii\base\Object
filterMatch() Устанавливает часть MATCH запроса, но игнорирует пустые операнды. yii\sphinx\MatchExpression
hasMethod() Возвращает значение, указывающее, определен ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\base\Object
match() Устанавливает выражение MATCH. yii\sphinx\MatchExpression
orFilterMatch() Добавляет дополнительное условие MATCH к существующему, но игнорирует пустые операнды. yii\sphinx\MatchExpression
orMatch() Добавляет дополнительное условие MATCH к существующему. yii\sphinx\MatchExpression
params() Устанавливает параметры для парсинга в запрос. yii\sphinx\MatchExpression

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

Метод Описание Определено
filterCondition() Удаляет пустые операнды из заданного условия запроса. yii\sphinx\MatchExpression
isEmpty() Возвращает значение, указывающее, является ли данное значение "пустым". yii\sphinx\MatchExpression

Подробное описание свойств

$match общедоступное свойство

Выражение MATCH. Например: ['title' => 'Yii', 'content' => 'Sphinx']. Примечание: при указании как обычной строки это значение не будет заключено в кавычки или экранировано, не передавайте возможные небезопасные значения (например, полученные из запроса HTTP) в качестве прямого значения.

См. также match().

public string|array|yii\db\Expression $match = null

$params общедоступное свойство

Список значений параметров выражения MATCH, индексированных по заполнительным параметрам. Например, [':name' => 'Dan', ':age' => 31]. Эти параметры будут автоматически экранированы с помощью yii\sphinx\Connection::escapeMatchValue() и вставлены в выражение MATCH в качестве строковых значений в кавычках.

public array $params = []

Подробное описание методов

__construct() public method

Конструктор.

public void __construct ( $match = null, $params = [], $config = [] )
$match string

Выражение MATCH

$params array

Параметры выражения.

$config array

Пара имя-значение, которые будут использованы для инициализации свойств объекта

addParams() public method

Добавляет дополнительные параметры для обработки в запросе.

См. также params().

public $this addParams ( $params )
$params array

Список значений параметров выражения, индексированных по заменителям параметров. Например, [':name' => 'Dan', ':age' => 31].

return $this

Объект выражения

andFilterMatch() public method (доступно с версии 2.0.7)

Добавляет дополнительное условие MATCH к существующему, но игнорирует пустые операнды.

Новое условие и существующее будут соединены с помощью оператора 'И' ('AND').

Этот метод похож на andMatch(). Основное отличие в том, что этот метод удаляет пустые операнды запроса. В результате этот метод лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователем.

См. также:

  • filterMatch()
  • orFilterMatch()
public $this andFilterMatch ( array $condition )
$condition array

Новое условие MATCH. Обратитесь к match() для указания этого параметра.

return $this

Объект запроса

andMatch() public method

Добавляет дополнительное условие MATCH к существующему.

Новое условие и существующее будут соединены с помощью оператора 'И' ('AND').

См. также:

  • match()
  • orMatch()
public $this andMatch ( $condition, $params = [] )
$condition string|array|yii\db\Expression

Новое условие MATCH. Обратитесь к match() для указания этого параметра.

$params array

Параметры (имя => значение) для обработки в запросе.

return $this

Сам объект выражения

filterCondition() protected method (доступно с версии 2.0.7)

Удаляет пустые операнды из заданного условия запроса.

protected array filterCondition ( $condition )
$condition array

Исходное условие

return array

Условие с удаленными пустыми операндами.

filterMatch() public method (доступно с версии 2.0.7)

Устанавливает часть MATCH запроса, но игнорирует пустые операнды.

Этот метод похож на match(). Основное отличие заключается в том, что этот метод удаляет пустые операнды запроса. В результате он лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователем.

Следующий код демонстрирует разницу между этим методом и match():

// MATCH (@title :title)
$query->filterMatch(['name' => null, 'title' => 'foo']);
// MATCH (@title :title)
$query->match(['title' => 20]);
// MATCH (@name :name @title :title)
$query->match(['name' => null, 'age' => 20]);

Обратите внимание, что, в отличие от match(), вы не можете передавать параметры привязки в этот метод.

См. также:

  • \yii\sphinx\where()
  • andFilterMatch()
  • orFilterMatch()
public $this filterMatch ( array $condition )
$condition array

Условия, которые должны быть помещены в часть MATCH. Обратитесь к match() для указания этого параметра.

return $this

Объект запроса

isEmpty() protected method (доступно с версии 2.0.7)

Возвращает значение, указывающее, является ли данное значение "пустым".

Значение считается "пустым", если выполняется одно из следующих условий:

  • он является null,
  • пустая строка (''),
  • строка, содержащая только пробельные символы,
  • или пустой массив.
protected boolean isEmpty ( $value )
$value mixed
return boolean

Если значение пустое

match() public method

Устанавливает выражение MATCH.

Метод требует параметр $condition, и необязательно параметр $params, указывающий значения для обработки в выражение.

Параметр $condition должен быть либо строкой (например, '@name "John"') либо массивом.

См. также:

  • andMatch()
  • orMatch()
public $this match ( $condition, $params = [] )
$condition string|array|yii\db\Expression

Условия, которые должны быть помещены в выражение MATCH.

$params array

Параметры (имя => значение) для обработки в запросе.

return $this

Сам объект выражения

orFilterMatch() public method (доступно с версии 2.0.7)

Добавляет дополнительное условие MATCH к существующему, но игнорирует пустые операнды.

Новое условие и существующее будут соединены с помощью оператора 'ИЛИ' ('OR').

Этот метод похож на orMatch(). Основное отличие в том, что этот метод удаляет пустые операнды запроса. В результате он лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователем.

См. также:

  • filterMatch()
  • andFilterMatch()
public $this orFilterMatch ( array $condition )
$condition array

Новое условие MATCH. Обратитесь к match() для указания этого параметра.

return $this

Объект запроса

orMatch() public method

Добавляет дополнительное условие MATCH к существующему.

Новое условие и существующее будут соединены с помощью оператора 'ИЛИ' ('OR').

См. также:

  • match()
  • andMatch()
public $this orMatch ( $condition, $params = [] )
$condition строка|массив|yii\db\Expression

Новое условие WHERE. Обратитесь к match() для информации о том, как указать этот параметр.

$params массив

Параметры (имя => значение), которые будут обработаны в запросе.

return $this

Сам объект выражения

params() public method

Устанавливает параметры для обработки в запросе.

См. также addParams().

public $this params ( $params )
$params массив

Список значений параметров выражения, индексированных именами заполнитель параметров. Например, [':name' => 'Dan', ':age' => 31].

return $this

Сам объект выражения

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-matchexpression.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API