Yii & elasticsearch совпадение по нескольким параметрам?

Да, в Yii можно осуществить поиск в Elasticsearch, используя несколько параметров. Для этого необходимо использовать ElasticSearch ActiveRecord Adapter, который позволяет совместно использовать модели в Elasticsearch и в реляционной базе данных.

Для начала, убедитесь, что у вас установлен и настроен Elasticsearch, а также у вас установлен пакет yii2-elasticsearch для работы с Elasticsearch в Yii.

Далее, вам нужно создать модель для индекса Elasticsearch. Это можно сделать, создав новый класс, который наследуется от класса yiielasticsearchActiveRecord. Например, создадим модель Product для индекса товаров:

use yiielasticsearchActiveRecord;

class Product extends ActiveRecord
{
    public static function index()
    {
        return 'products';
    }

    /**
     * @inheritdoc
     */
    public function attributes()
    {
        return ['id', 'name', 'price', 'category'];
    }
}

В этом примере у нас есть 4 атрибута: id, name, price и category. Мы можем использовать эти атрибуты для поиска товаров в Elasticsearch.

Теперь, чтобы найти товары по нескольким параметрам, мы можем использовать метод find(), в котором зададим условия для каждого параметра поиска. Например, найдем все товары с категорией "электроника" и ценой меньше 100:

$products = Product::find()
    ->andWhere(['category' => 'электроника'])
    ->andWhere(['<', 'price', 100])
    ->all();

При таком поиске будут найдены все товары, у которых категория равна "электроника" и цена меньше 100.

Вы также можете комбинировать различные условия для большей гибкости и точности поиска. Например, чтобы найти все товары, у которых имя содержит слово "iPhone" и цена между 500 и 1000, вы можете сделать так:

$products = Product::find()
    ->andWhere(['like', 'name', 'iPhone'])
    ->andWhere(['between', 'price', 500, 1000])
    ->all();

Здесь мы использовали оператор like, чтобы найти все товары, у которых имя содержит слово "iPhone", и оператор between, чтобы найти товары с ценой между 500 и 1000.

В конечном итоге, Yii предоставляет мощные инструменты для работы с Elasticsearch, и вы можете использовать их, чтобы осуществить поиск по нескольким параметрам и получить подходящие результаты.