yii\elasticsearch\QueryBuilder::buildHashCondition PHP Method

buildHashCondition() private method

private buildHashCondition ( $condition )
    private function buildHashCondition($condition)
    {
        $parts = [];
        foreach ($condition as $attribute => $value) {
            if ($attribute == '_id') {
                if ($value === null) {
                    // there is no null pk
                    $parts[] = ['terms' => ['_uid' => []]];
                    // this condition is equal to WHERE false
                } else {
                    $parts[] = ['ids' => ['values' => is_array($value) ? $value : [$value]]];
                }
            } else {
                if (is_array($value)) {
                    // IN condition
                    $parts[] = ['in' => [$attribute => $value]];
                } else {
                    if ($value === null) {
                        $parts[] = ['missing' => ['field' => $attribute, 'existence' => true, 'null_value' => true]];
                    } else {
                        $parts[] = ['term' => [$attribute => $value]];
                    }
                }
            }
        }
        return count($parts) === 1 ? $parts[0] : ['and' => $parts];
    }