Запрос:
SELECT title, date_format(material_date,'%e.%c.%y') AS date1,
IF(text like '%word1 word2 word3%', 3*10, 0) + IF(text LIKE '%word1%', 9, 0) + IF(text LIKE '%word2%', 9, 0) + IF(text LIKE '%word3%', 9, 0) AS relevance
FROM table
WHERE text LIKE '%word1%' OR
text LIKE '%word2%' OR text LIKE '%word3%'
ORDER BY relevance DESC, material_date DESC
Нужно переделать под: выбрать все, поля для поиска совпадения: field1 и field2
Спустя 11 минут, 37 секунд (7.02.2011 - 22:49) inpost написал(а):
Ничего не понятно, вроде как просишь что-то простое, а показываешь какой-то громоздский код =)
Спустя 6 минут, 10 секунд (7.02.2011 - 22:55) Гость_User написал(а):
Запрос для поиска с сортировкой по релевантности без использования match against (ну и FULLTEXT). )
Не могу понять некоторых вещей и ищется сложно.
Не могу понять некоторых вещей и ищется сложно.
Спустя 1 минута, 38 секунд (7.02.2011 - 22:57) Гость_User написал(а):
Нужно использовать данный запрос для поиска.
Ищу по полям field1 field2. А из данных, которые соответствуют запросу нужно выбрать все *.
Ищу по полям field1 field2. А из данных, которые соответствуют запросу нужно выбрать все *.
Спустя 8 минут, 50 секунд (7.02.2011 - 23:06) Гость_User написал(а):
Тогда проще:
Как переделать запрос ниже по примеру запроса выше, чтобы данные сортировались по релевантности.
Как переделать запрос ниже по примеру запроса выше, чтобы данные сортировались по релевантности.
SELECT distinct * FROM table WHERE field1 LIKE '%text%' or field1 LIKE '%text1%' LIMIT 0, 10
Спустя 5 минут, 32 секунды (7.02.2011 - 23:11) Гость_User написал(а):
Переделал сам.
Проверьте.
Проверьте.
SELECT *, IF(field1 like '%word1 word2%', 3*10, 0) + IF(field1 LIKE '%word1%', 9, 0) + IF(field1 LIKE '%word2%', 9, 0) AS relevance
FROM table
WHERE field1 LIKE '%word1%' OR field1 LIKE '%word2%'
ORDER BY relevance DESC