Exemplo n.º 1
0
    /**
     * Transforms a generic Query object into an Elastic Search query DSL
     *
     * @param Query $query
     */
    public function mapQuery(Query $query)
    {
        $map['from'] = $query->getOffset();
        $map['size'] = $query->getLimit();

        if ($query->hasQueryString()) {
            $map['query']['query_string'] = array();
            $map['query']['query_string']['query'] = $query->getQueryString()->getQuery();
            $map['query']['query_string']['default_field'] = $query->getQueryString()->getDefaultField();
            $map['query']['query_string']['default_operator'] = $query->getQueryString()->getDefaultOperator() == Query::OPERATOR_AND ? 'and' : 'or';
        }

        foreach ($query->getSort() as $sort) {
            $map['sort'][] = $sort;
        }

        return $map;
    }