yii\elasticsearch\Query::column PHP Method

column() public method

Executes the query and returns the first column of the result.
public column ( string $field, Connection $db = null ) : array
$field string the field to query over
$db Connection the database connection used to execute the query. If this parameter is not given, the `elasticsearch` application component will be used.
return array the first column of the query result. An empty array is returned if the query results in nothing.
    public function column($field, $db = null)
    {
        $command = $this->createCommand($db);
        $command->queryParts['_source'] = [$field];
        $result = $command->search();
        if (empty($result['hits']['hits'])) {
            return [];
        }
        $column = [];
        foreach ($result['hits']['hits'] as $row) {
            if (isset($row['fields'][$field])) {
                $column[] = $row['fields'][$field];
            } elseif (isset($row['_source'][$field])) {
                $column[] = $row['_source'][$field];
            } else {
                $column[] = null;
            }
        }
        return $column;
    }

Usage Example

Beispiel #1
0
 /**
  * @inheritdoc
  */
 public function column($field, $db = null)
 {
     if ($field == '_id') {
         $command = $this->createCommand($db);
         $command->queryParts['fields'] = [];
         $command->queryParts['_source'] = false;
         $result = $command->search();
         if (empty($result['hits']['hits'])) {
             return [];
         }
         $column = [];
         foreach ($result['hits']['hits'] as $row) {
             $column[] = $row['_id'];
         }
         return $column;
     }
     return parent::column($field, $db);
 }
All Usage Examples Of yii\elasticsearch\Query::column