Spec-Zone.ru › Yii 2.0

Класс yii\elasticsearch\ActiveQuery

Все классы | Свойства | Методы | События
Наследование yii\elasticsearch\ActiveQuery » yii\elasticsearch\Query » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable, yii\db\ActiveQueryInterface, yii\db\QueryInterface
Использует Трейты yii\db\ActiveQueryTrait, yii\db\ActiveRelationTrait, yii\db\QueryTrait
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2-elasticsearch/blob/master/ActiveQuery.php

ActiveQuery представляет yii\elasticsearch\Query, связанный с классом yii\elasticsearch\ActiveRecord.

  1. Запрос по умолчанию
  2. Реляционный запрос

Объект ActiveQuery может быть обычным запросом или использоваться в реляционном контексте.

Объекты ActiveQuery обычно создаются с помощью yii\elasticsearch\ActiveRecord::find(). Реляционные запросы создаются с помощью yii\elasticsearch\ActiveRecord::hasOne() и yii\elasticsearch\ActiveRecord::hasMany().

Запрос по умолчанию

ActiveQuery предоставляет следующие методы для получения результатов запроса:

  • one(): возвращает один объект, заполненный первыми данными.
  • all(): возвращает все объекты на основе результатов запроса.
  • count(): возвращает количество объектов.
  • scalar(): возвращает значение первой колонки в первой строке результата запроса.
  • column(): возвращает значение первой колонки в результате запроса.
  • exists(): возвращает значение, указывающее, содержит ли результат запроса данные или нет.

Поскольку ActiveQuery расширяет yii\elasticsearch\Query, можно использовать методы запроса, такие как where(), orderBy(), для настройки параметров запроса.

ActiveQuery также предоставляет следующие дополнительные параметры запроса:

  • with(): список отношений, с которыми должен быть выполнен этот запрос.
  • indexBy(): имя колонки, по которой должен индексироваться результат запроса.
  • asArray(): указывает, следует ли возвращать каждый объект в виде массива.

Эти параметры можно настроить с помощью методов с таким же именем. Например:

$customers = Customer::find()->with('orders')->asArray()->all();

Примечание: elasticsearch по умолчанию ограничивает количество возвращаемых записей 10. Если ожидается получить больше записей, необходимо явно указать limit.

Реляционный запрос

В реляционном контексте ActiveQuery представляет отношение между двумя классами Active Record.

Объекты ActiveQuery в реляционном контексте обычно создаются с помощью вызова yii\elasticsearch\ActiveRecord::hasOne() и yii\elasticsearch\ActiveRecord::hasMany(). Класс Active Record объявляет отношение, определяя метод-геттер, который вызывает один из вышеперечисленных методов и возвращает созданный объект ActiveQuery.

Отношение задается через $link, представляющее ассоциацию между столбцами различных таблиц; а множественность отношения указывается через $multiple.

Если отношение включает таблицу соединения, оно может быть задано с помощью via(). Этот метод может вызываться только в реляционном контексте. То же самое относится к inverseOf(), который отмечает отношение как обратное другому отношению.

Примечание: elasticsearch по умолчанию ограничивает количество записей, возвращаемых любым запросом, 10. Если ожидается получить больше записей, необходимо явно указать limit в определении отношения. Это также важно для отношений, использующих via(), чтобы, если записи via ограничены 10, записи отношений также не превышали 10.

Примечание: В настоящее время with() не поддерживается в сочетании с asArray().

Публичные свойства

Свойство Тип Описание Определено в
$aggregations массив Список агрегаций для добавления в этот запрос. yii\elasticsearch\Query
$asArray булево Определяет, нужно ли возвращать каждую запись в виде массива. yii\db\ActiveQueryTrait
$behaviors yii\base\Behavior[] Список присоединённых к этому компоненту поведений. yii\base\Component
$emulateExecution булево Определяет, нужно ли эмулировать фактическое выполнение запроса, возвращая пустые или ложные результаты. yii\db\QueryTrait
$explain булево Включает объяснение для каждого совпадения, как был вычислен его рейтинг. yii\elasticsearch\Query
$fields массив Поля, извлекаемые из документов. yii\elasticsearch\Query
$filter массив|строка Часть фильтра этого запроса поиска. yii\elasticsearch\Query
$highlight массив Часть выделения этого запроса поиска. yii\elasticsearch\Query
$index строка|массив Индекс для извлечения данных. yii\elasticsearch\Query
$indexBy строка|вызываемый объект Имя столбца, по которому должны индексироваться результаты запроса. yii\db\QueryTrait
$inverseOf строка Имя отношения, являющегося обратным к этому отношению. yii\db\ActiveRelationTrait
$limit целое число|yii\db\Expression Максимальное количество записей, которое должно быть возвращено. yii\db\QueryTrait
$link массив Столбцы первичной и внешней таблиц, которые устанавливают отношение. yii\db\ActiveRelationTrait
$minScore вещественное число Исключить документы, у которых _score меньше минимального значения, указанного в min_score yii\elasticsearch\Query
$modelClass строка Имя класса ActiveRecord. yii\db\ActiveQueryTrait
$multiple булево Определяет, представляет ли этот запрос отношение к более чем одной записи. yii\db\ActiveRelationTrait
$offset целое число|yii\db\Expression Сдвиг с нулевым основанием, с которого должны возвращаться записи. yii\db\QueryTrait
$options массив Список параметров, которые будут переданы командам, созданным этим запросом. yii\elasticsearch\Query
$orderBy массив Как сортировать результаты запроса. yii\db\QueryTrait
$postFilter строка|массив Часть запроса поиска для дифференциального фильтрации результатов поиска и агрегаций. yii\elasticsearch\Query
$primaryModel yii\db\ActiveRecord Основная модель реляционного запроса. yii\db\ActiveRelationTrait
$query массив|строка Часть запроса поиска. yii\elasticsearch\Query
$source массив Этот параметр управляет тем, как возвращается поле _source из документов. yii\elasticsearch\Query
$stats массив Часть запроса 'stats'. yii\elasticsearch\Query
$suggest массив Список сущностей для добавления в этот запрос. yii\elasticsearch\Query
$timeout целое число Таймаут поиска, ограничивающий выполнение запроса поиска заданным значением времени и прерывающий его с накопленными совпадениями, когда истекло время. yii\elasticsearch\Query
$type строка|массив Тип для извлечения данных. yii\elasticsearch\Query
$via массив|объект Запрос, связанный с таблицей соединения. yii\db\ActiveRelationTrait
$where строка|массив Условие запроса. yii\db\QueryTrait
$with массив Список отношений, с которыми должен выполняться этот запрос. yii\db\ActiveQueryTrait

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

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Component
__clone() Клонирует внутренние объекты. yii\db\ActiveRelationTrait
__construct() Конструктор. yii\elasticsearch\ActiveQuery
__get() Возвращает значение свойства компонента. yii\base\Component
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Component
__set() Устанавливает значение свойства компонента. yii\base\Component
__unset() Устанавливает свойство компонента в null. yii\base\Component
addAgg() yii\elasticsearch\Query
addAggregate() Добавляет агрегацию к этому запросу. Поддерживает вложенные агрегации. yii\elasticsearch\Query
addAggregation() yii\elasticsearch\Query
addOptions() Добавляет дополнительные параметры, перезаписывая существующие. yii\elasticsearch\Query
addOrderBy() Добавляет дополнительные столбцы ORDER BY к запросу. yii\db\QueryTrait
addSuggester() Добавляет подсказчик к этому запросу. yii\elasticsearch\Query
all() Выполняет запрос и возвращает все результаты в виде массива. yii\elasticsearch\ActiveQuery
andFilterWhere() Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. yii\db\QueryTrait
andWhere() Добавляет дополнительное условие WHERE к существующему. yii\db\QueryTrait
asArray() Устанавливает свойство asArray(). yii\db\ActiveQueryTrait
attachBehavior() Присоединяет поведение к этому компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
batch() Запускает пакетный запрос. yii\elasticsearch\Query
behaviors() Возвращает список поведений, которые должен иметь этот компонент. yii\base\Component
canGetProperty() Возвращает значение, указывающее, можно ли читать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
column() Выполняет запрос и возвращает первый столбец результата. yii\elasticsearch\ActiveQuery
count() Возвращает количество записей. yii\elasticsearch\Query
createCommand() Создаёт команду БД, которая может быть использована для выполнения этого запроса. yii\elasticsearch\ActiveQuery
delete() Выполняет запрос и удаляет все соответствующие документы. yii\elasticsearch\Query
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
each() Запускает пакетный запрос и извлекает данные построчно. yii\elasticsearch\Query
emulateExecution() Устанавливает, нужно ли эмулировать выполнение запроса, предотвращая любое взаимодействие с хранилищем данных. yii\db\QueryTrait
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
exists() Возвращает значение, указывающее, содержит ли результат запроса какую-либо строку данных. yii\elasticsearch\Query
explain() Объяснить, как был вычислен рейтинг каждого документа. yii\elasticsearch\Query
fields() Устанавливает поля, которые нужно извлечь из документов. yii\elasticsearch\Query
filter() Устанавливает часть фильтра этого запроса поиска. yii\elasticsearch\Query
filterWhere() Устанавливает часть WHERE запроса, но игнорирует пустые операнды. yii\db\QueryTrait
findFor() Ищет связанные записи для указанной основной записи. yii\db\ActiveRelationTrait
findWith() Ищет записи, соответствующие одному или нескольким отношениям, и заполняет ими основные модели. yii\db\ActiveQueryTrait
from() Устанавливает индекс и тип для извлечения документов. yii\elasticsearch\Query
getBehavior() Возвращает объект именованного поведения. yii\base\Component
getBehaviors() Возвращает все поведения, присоединённые к этому компоненту. yii\base\Component
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчик, присоединённый к именованному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определено ли свойство для этого компонента. yii\base\Component
highlight() Устанавливает параметры выделения для извлечения из документов. yii\elasticsearch\Query
indexBy() Устанавливает свойство indexBy(). yii\db\QueryTrait
init() Инициализирует объект. yii\elasticsearch\ActiveQuery
inverseOf() Устанавливает имя отношения, являющегося обратным для данного отношения. yii\db\ActiveRelationTrait
limit() Устанавливает часть LIMIT запроса. yii\db\QueryTrait
minScore() yii\elasticsearch\Query
off() Отсоединяет существующий обработчик событий от данного компонента. yii\base\Component
offset() Устанавливает часть OFFSET запроса. yii\db\QueryTrait
on() Присоединяет обработчик событий к событию. yii\base\Component
one() Выполняет запрос и возвращает одну строку результата. yii\elasticsearch\ActiveQuery
options() Устанавливает опции, которые будут переданы команде, созданной этим запросом. yii\elasticsearch\Query
orFilterWhere() Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. yii\db\QueryTrait
orWhere() Добавляет дополнительное условие WHERE к существующему. yii\db\QueryTrait
orderBy() Устанавливает часть ORDER BY запроса. yii\db\QueryTrait
populate() Преобразует результаты сырого запроса в формат, указанный этим запросом. yii\elasticsearch\ActiveQuery
populateRelation() Находит связанные записи и заполняет их в первичные модели. yii\db\ActiveRelationTrait
postFilter() Устанавливает post_filter часть запроса поиска. yii\elasticsearch\Query
query() Устанавливает часть запроса данного запроса поиска. yii\elasticsearch\Query
scalar() Возвращает результат запроса как скалярное значение. yii\elasticsearch\Query
search() Выполняет запрос и возвращает весь результат поиска, включая, например, совпадения, аспекты, общее количество. yii\elasticsearch\ActiveQuery
source() Устанавливает фильтрацию источника, определяя, как должен возвращаться _source поле документа. yii\elasticsearch\Query
stats() Добавляет часть 'stats' к запросу. yii\elasticsearch\Query
timeout() Устанавливает таймаут поиска. yii\elasticsearch\Query
trigger() Вызывает событие. yii\base\Component
via() Указывает отношение, связанное с таблицей соединения. yii\db\ActiveRelationTrait
where() Устанавливает часть WHERE запроса. yii\db\QueryTrait
with() Указывает отношения, с которыми должен выполняться этот запрос. yii\db\ActiveQueryTrait

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

Метод Описание Определено
createModels() Преобразует найденные строки в экземпляры моделей yii\db\ActiveQueryTrait
filterCondition() Удаляет пустые операнды из данного условия запроса. yii\db\QueryTrait
isEmpty() Возвращает значение, указывающее, является ли данное значение "пустым". yii\db\QueryTrait
normalizeOrderBy() Нормализует формат данных ORDER BY yii\db\QueryTrait

События

Событие Тип Описание Определено
EVENT_INIT \yii\elasticsearch\Event Событие, которое срабатывает при инициализации запроса с помощью init(). yii\elasticsearch\ActiveQuery

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

__construct() public method

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

public void __construct ( $modelClass, $config = [] )
$modelClass array

Класс модели, связанной с этим запросом

$config array

Настройки, которые должны быть применены к новосозданному объекту запроса

all() public method

Выполняет запрос и возвращает все результаты в виде массива.

public array all ( $db = null )
$db yii\elasticsearch\Connection

Подключение к БД, используемое для создания команды БД. Если равно null, будет использовано подключение к БД, возвращаемое $modelClass.

return array

Результаты запроса. Если запрос не возвращает ничего, будет возвращен пустой массив.

column() public method

Выполняет запрос и возвращает первый столбец результата.

public array column ( $field, $db = null )
$field string

Поле для запроса

$db yii\elasticsearch\Connection

Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не задан, будет использовано приложение компонента elasticsearch.

return array

Первый столбец результата запроса. Пустой массив возвращается, если запрос не возвращает ничего.

createCommand() public method

Создаёт команду БД, которая может быть использована для выполнения этого запроса.

public yii\elasticsearch\Command createCommand ( $db = null )
$db yii\elasticsearch\Connection

Подключение к БД, используемое для создания команды БД. Если равно null, будет использовано подключение к БД, возвращаемое $modelClass.

return yii\elasticsearch\Command

Созданный экземпляр команды БД.

init() public method

Инициализирует объект.

Этот метод вызывается в конце конструктора. Стандартная реализация вызовет событие EVENT_INIT. Если вы переопределяете этот метод, убедитесь, что вызывается родительская реализация в конце, чтобы гарантировать вызов события.

public void init ( )

one() public method

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

public yii\elasticsearch\ActiveRecord|array|null one ( $db = null )
$db yii\elasticsearch\Connection

Подключение к БД, используемое для создания команды БД. Если равно null, будет использовано подключение к БД, возвращаемое $modelClass.

return yii\elasticsearch\ActiveRecord|array|null

Единственная строка результата запроса. В зависимости от настройки asArray(), результат запроса может быть либо массивом, либо объектом ActiveRecord. Null будет возвращен, если запрос ничего не вернул.

populate() public method (доступно с версии 2.0.4)

Преобразует сырые результаты запроса в формат, указанный в запросе.

Этот метод используется внутри для преобразования данных, извлеченных из базы данных, в требуемый формат этого запроса.

public array populate ( $rows )
$rows array

Сырой результат запроса из базы данных

return array

Преобразованный результат запроса

search() public method

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

public array search ( $db = null, $options = [] )
$db yii\elasticsearch\Connection

Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент приложения elasticsearch.

$options array

Опции, переданные с этим запросом. Возможные опции:

  • routing
  • search_type
return array

Результаты запроса.

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

EVENT_INIT событие типа \yii\elasticsearch\Event

Событие, которое срабатывает при инициализации запроса с помощью init().

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

Spec-Zone.ru

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