Пишу поиск товаров для сайта. Поиск должен быть максимально релевантным. Есть множество таблиц, абсолютно абстрагированных друг от друга.
То есть, для каждого типа товаров есть таблица с полями name и html (полное описание с разметкой WYSIWYG).
Поисковая строка может состоять из множества слов. Для одной таблицы все супер, делаю запрос так:
SELECT *, (
IF (tb_table1.name LIKE '%Ляля лала%', 2, 0) +
IF (tb_table1.name LIKE '%Ляля%', 1, 0) +
IF (tb_table1.name LIKE '%лала%', 1, 0) +
IF (tb_table1.html LIKE '%Ляля лала%', 2, 0) +
IF (tb_table1.html LIKE '%Ляля%', 1, 0) +
IF (tb_table1.html LIKE '%лала%', 1, 0)
) AS points FROM tb_table1 ORDER BY points DESC LIMIT 20
Но как это провернуть и с остальными таблицами?