Для правильной реализации фильтров по свойствам в Sphinx вам потребуется выполнить следующие шаги:
1. Установите Sphinx: Сначала вам потребуется установить Sphinx на ваш сервер. Вы можете скачать его с официального сайта Sphinx или установить через менеджер пакетов, такой как apt-get или yum, если вы используете Linux.
2. Создайте индекс в Sphinx: Для реализации фильтров по свойствам вам необходимо создать индекс в Sphinx. Индекс содержит данные, которые вы хотите индексировать и по которым вы будете выполнять поиск и фильтрацию. Для создания индекса вы можете использовать конфигурационный файл sphinx.conf и выполнить команду индексации.
3. Определите свойства в индексе: Для реализации фильтров по свойствам вам необходимо определить свойства в вашем индексе. Свойства представляют собой атрибуты или поля, по которым вы хотите фильтровать результаты поиска. Например, если у вас есть индекс книг, то вы можете определить свойство "автор" и свойство "жанр". Для определения свойств вы можете использовать директиву sql_attr_multi или sql_attr_uint в вашем конфигурационном файле.
4. Фильтрация результатов: После определения свойств вы можете использовать их для фильтрации результатов поиска. Вы можете использовать метод AddFilter() в вашем запросе в Yii, чтобы указать условия фильтрации. Например, чтобы найти все книги автора "Джон Смит" и жанра "фантастика", вы можете использовать следующий код:
$query = new Yii::app()->search->createCommand()->from('books'); $query->search('книги'); $query->addFilter('автор', array('Джон Смит')); $query->addFilter('жанр', array('фантастика')); $results = $query->queryAll();
5. Обработка результатов: После выполнения запроса и фильтрации результатов, вы можете обработать результаты и отобразить их на вашей веб-странице. Например, вы можете использовать цикл foreach в Yii для обхода результата и отображения значений свойств.
foreach ($results as $item) { echo $item['название']; // Вывод названия книги echo $item['автор']; // Вывод автора книги echo $item['жанр']; // Вывод жанра книги // и так далее... }
Таким образом, правильная реализация фильтров по свойствам в Sphinx включает установку Sphinx, создание индекса с определением свойств, фильтрацию результатов с использованием метода AddFilter() и обработку результатов в вашем приложении Yii.