У меня проблема.Я сделал простой поисковик, который ищет по марке и модели автомобиля.По соображениям производительности запросов и большого количества данных в базе данных я решил использовать полнотекстовый поиск.Все нормально, но теперь я сталкиваюсь с проблемой:
Я хотел бы найти все автомобили с маркой "Audi" и с моделью "Q7".На данный момент у меня есть этот запрос SQL, но он не работает правильно, из-за длины слова "Q7":
SELECT `a`.`id`, `a`.`title`, `a`.`askprice`, `a`.`description`, `a`.`picture`
FROM (`mm_ads` as a)
WHERE `a`.`category` = '227'
AND `a`.`askprice` >= '0'
AND `a`.`askprice` <= '144000'
AND (MATCH(a.title) AGAINST ('+audi +q7' IN BOOLEAN MODE ))
GROUP BY `a`.`id`
ORDER BY `a`.`id` ASC
LIMIT 30
У меня нет доступа для изменения файла конфигурации MySQL, чтобы установить ft_min_word_len
до значения 2. На данный момент значение равно 3. Есть ли другой способ справиться с этим?
Вот еще одна проблема:
Я хотел бы получить все автомобили марки "BMW "и модель" 116 ".Например, у меня есть машина с именем BMW, 1, 116i
.Мой запрос SQL:
`SELECT `a`.`id`, `a`.`title`, `a`.`askprice`, `a`.`description`, `a`.`picture`
FROM (`mm_ads` as a)
WHERE `a`.`category` = '227'
AND `a`.`askprice` >= '0'
AND `a`.`askprice` <= '144000'
AND (MATCH(a.title) AGAINST ('+bmw +116' IN BOOLEAN MODE))
GROUP BY `a`.`id`
ORDER BY `a`.`id` ASC
LIMIT 30`
Поиск возвращает 0 строк.Зачем?Все входные строки («BMW», «116») имеют минимальную длину 3. Что я делаю не так?
С уважением, Марио