Класс 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().
См. также:
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $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 |
Список значений параметров выражения, индексированных по заменителям параметров. Например, |
| return | $this |
Объект выражения |
andFilterMatch() public method (доступно с версии 2.0.7)
Добавляет дополнительное условие MATCH к существующему, но игнорирует пустые операнды.
Новое условие и существующее будут соединены с помощью оператора 'И' ('AND').
Этот метод похож на andMatch(). Основное отличие в том, что этот метод удаляет пустые операнды запроса. В результате этот метод лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователем.
См. также:
| public $this andFilterMatch ( array $condition ) | ||
|---|---|---|
| $condition | array |
Новое условие MATCH. Обратитесь к match() для указания этого параметра. |
| return | $this |
Объект запроса |
andMatch() public method
Добавляет дополнительное условие MATCH к существующему.
Новое условие и существующее будут соединены с помощью оператора 'И' ('AND').
См. также:
| 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"') либо массивом.
См. также:
| 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(). Основное отличие в том, что этот метод удаляет пустые операнды запроса. В результате он лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователем.
См. также:
| public $this orFilterMatch ( array $condition ) | ||
|---|---|---|
| $condition | array |
Новое условие MATCH. Обратитесь к match() для указания этого параметра. |
| return | $this |
Объект запроса |
orMatch() public method
Добавляет дополнительное условие MATCH к существующему.
Новое условие и существующее будут соединены с помощью оператора 'ИЛИ' ('OR').
См. также:
| public $this orMatch ( $condition, $params = [] ) | ||
|---|---|---|
| $condition | строка|массив|yii\db\Expression |
Новое условие WHERE. Обратитесь к match() для информации о том, как указать этот параметр. |
| $params | массив |
Параметры (имя => значение), которые будут обработаны в запросе. |
| return | $this |
Сам объект выражения |
params() public method
Устанавливает параметры для обработки в запросе.
См. также addParams().
| public $this params ( $params ) | ||
|---|---|---|
| $params | массив |
Список значений параметров выражения, индексированных именами заполнитель параметров. Например, |
| 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