Имеется база автомобилей. Задача по произвольной строке найти из таблицы максимально схожую модификацию автомобиля.
Данные для индекса в sphinx.conf получаю следующим запросом
SELECT car_modification.id_car_modification as id,
car_modification.name as modification,
car_serie.name as serie,
car_generation.name as generation,
car_generation.year_begin as year_begin,
car_generation.year_end as year_end,
car_model.name as model,
car_model.name_rus as model_rus,
car_mark.name as mark,
car_mark.name_rus as mark_rus
FROM car_modification
LEFT JOIN car_serie ON car_modification.id_car_serie=car_serie.id_car_serie
LEFT JOIN car_generation ON car_serie.id_car_generation=car_generation.id_car_generation
LEFT JOIN car_model ON car_generation.id_car_model=car_model.id_car_model
LEFT JOIN car_mark ON car_model.id_car_mark=car_mark.id_car_mark
Ищем таким образом
$result = $cl->Query("Хундай санта фе 2008"); // поисковый запрос котрый выдает не верные результаты
1. Как сделать чтоб sphinx находил результаты не зависимо от того на каком языке искомый запрос?
2. Каким образом можно производить поиск до максимального уровня вложенности марка-модель-поколение-серия-модификация.
То есть запрос: "инфинити ex 37 2011" вернет id модификации:
Марка - infiniti
Модель - EX-Series
Поколение - 1 поколение [2007 - 2013]
Серия - Кроссовер 5-дв.
Модификация - EX37 AT AWD (330 л. с.)
А запрос "инфинити ex 2011", возвращал бы id поколения:
Марка - infiniti
Модель - EX-Series
Поколение - 1 поколение [2007 - 2013]
3. Как заставить учитывать год выпуска автомобиля, который указывается в запросе и указан в серии (диапазон между year_begin, year_end)?
1 проблему можно решить используя функцию транскрипции на php перед выполнением поискового запрос. Но помойму это костыль.
3 пункт можно решить уже после того, как мы получили массив результатов от sphinx, делаю повторную выборку и учитывая года выпуска, но мне кажется это опять же костыль и данную функцию должен выполнять поисковый движек.
Марку модель и год я могу подставлять в поисковый запрос отдельно, используя регулярные выражения для выборки.