Ребята, я знаю что подобные темы уже поднимались не раз, но я считаю, что в праве создать новую.
Вопрос номер 1:
Есть интернет-магазин с очень большим числом записей (товары). Мне нужно сделать поиск по всему этому добру. Дело в том, что если у меня есть товары
1. мелкая хрень
2. мелкая штука
3. штука дрюка
и я ввожу в строку поиска "шту юка", то я должен получить это:
1. штука дрюка
2. мелкая штука
3. мелкая хрень
Во всяком случае - на первом месте именно "штука дрюка".
По этой причине я не могу использовать булеантовский поиск (BOOLEAN MODE) или лайк (LIKE) ибо они не дают релевантности. А другие виды поиска в MySQL соответственно не найдут такие слова (они ищут их полностью - то есть по запросу "штука" выдастся 2 результата, а по запросу "шту" - ни одного!).
Что делать, как сделать поиск с релеваностью, но на подобии LIKE (т.е. со спец. символами типа %, обозначающими "любые символы")?
Есть какой-нибудь способ, готовое решение?
Вопрос номер 2:
Если я хочу написать свой алгоритм поиска, то как это лучше сделать? В том смысле, что - организовать как?
Например, пробежать каждую строку в базе, каждую запись. Для нее посчитать кол-во совпадающих символов со строкой запроса, организовать табличку (или массив?!), куда записать релевантность (свою), а потом вывести ее, отсортированную, и удалить таблицу? А не извращение ли? Умные дядьки так делают?.. Но ведь записейт может быть и 500.000 и 1.000.000... Это же год пройдет.
UPD: Перерыл очень много всего в интернете и в мануале. Ответа не нашел.