подскажите как научить sphinx искать по определенным словам из поисковой фразы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

подскажите как научить sphinx искать по определенным словам из поисковой фразы

Сообщение mika_di »

Здравствуйте.
Столкнулся с тем, что пользователи пишут в строке поиска сайта, точно так же как в поисковой строке google, например - Танк т-34 ранний образца 1941 г. , в базе например есть только - т-34 образца 1941 года соответственно ничего не находится. Так вот как сделать так чтобы поиск был по т-34 и 1941.
Как сделать так, чтобы например сначала находилось по т-34, а потом фильтровалось по 1941?
Да используется sphinx.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: подскажите как научить sphinx искать по определенным словам из поисковой фразы

Сообщение unknownby »

Как в самом sphinx прописать не подскажу, но суть запроса и поиска понятна.
Берем поисковую строку, разделяем её на массив слов

Код: Выделить всё

$arr = explode(' ', $this->search);
А дальше в поиске ищем по каждому слову из массива. Если сделать через "OR", то будет выдавать почти реальную картину поиска.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: подскажите как научить sphinx искать по определенным словам из поисковой фразы

Сообщение maleks »

А вот этот момент, как анализировать поисковую строку от пользователя, вообще не объяснен в Sphinx.

Если например тупо вставить как ввели, без всякого экранирования, то:
- всякие вредители таких операторов туда накидают, что положат тебе весь сервер
- ограничение на кол-во слов

По умолчанию работает так что:
- должны присутствовать все слова, т.к. пробелы - это оператор AND

Видел что люди пришли к такому что разбивают на слова и ставят им всем оператор OR, плюс еще звездочки включают каждому слову с двух сторон, и это считают нормальным поиском. Типа те же результаты где встретится больше слов оно и отранжирует лучше.
Но насколько реально это то что человек задумывал когда искал фразу?
Есть оператор quorum, когда задаешь сколько слов из скольки должны присутствовать, может с ним попробовать?
Ответить