|
|
|
| заранее извиняюсь если вдруг что-то подобное спрашивали.
так вот, производится в скрипте запрос следующего вида:
SELECT * FROM product,kurs
WHERE MATCH (name,description)
AGAINST ('".$_GET['name']."*' IN BOOLEAN MODE
|
ищет нормально,не жалуюсь,НО: почему-то сортирует не по релевантности как должно было быть, а как раз наоборот: вхождения,которые лучше всего подходят под запрос почему-то попадают в конец...
в чём может быть причина?
простая табличка, была изменена так:
ALTER TABLE product ADD FULLTEXT (name,description)
|
| |
|
|
|
|
|
|
|
для: psychomc
(06.11.2008 в 10:12)
| | >SELECT * FROM product,kurs
>WHERE MATCH (name,description)
>AGAINST ('".$_GET['name']."*' IN BOOLEAN MODE
>
>ищет нормально,не жалуюсь,НО: почему-то сортирует не по релевантности как должно было быть
где написано, что результат будет отсортирован? | |
|
|
|
|
|
|
|
для: Trianon
(06.11.2008 в 11:43)
| | Trianon, читал на этом форуме что при полнотекстовом поиске результат сортируется по релевантности...или я забыл что-то в запросе???? | |
|
|
|
|
|
|
|
для: psychomc
(06.11.2008 в 11:50)
| | Вот поскольку я ничего такого не читал, то и поинтересовался. | |
|
|
|
|
|
|
|
для: Trianon
(06.11.2008 в 12:13)
| | ну вот юзаю первую ссылки в yandex:
Mysql.ru:
Когда команда MATCH() используется в выражении WHERE (см. пример выше), возвращенные строки столбцов автоматически сортируются, начиная с наиболее релевантных.
вот собственно интересно почему у меня оно сортирует не по релевантности.... | |
|
|
|
|
|
|
|
для: psychomc
(06.11.2008 в 12:20)
| | Так у Вас же вроде BOOLEAN MODE стоит
Напишите ORDER BY MATCH... без него. | |
|
|
|
|
|
|
|
для: Trianon
(06.11.2008 в 12:37)
| | написал так:
SELECT * FROM product
WHERE MATCH (name,description)
AGAINST ('".$_GET['name']."*') ORDER BY MATCH(name)
ругается: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result....
Извините,не догоняю как такой правильно запрос сформировать | |
|
|
|
|
|
|
|
для: psychomc
(06.11.2008 в 12:44)
| | Выражение-то нужно до конца дописать.
SELECT * FROM product
WHERE MATCH (name,description)
AGAINST ('".$_GET['name']."*') ORDER BY MATCH(name) AGAINST ('".$_GET['name']."*')
PS. После таких перлов (Warning: mysql_num_rows(): supplied argument is not a valid MySQL result...) начинает казаться, что лучше б и не советовал. | |
|
|
|
|
|
|
|
для: Trianon
(06.11.2008 в 13:07)
| | спасибо,работает но только почему-то без поля description
>PS. После таких перлов (Warning: mysql_num_rows(): supplied argument is not a valid MySQL result...) начинает казаться, что лучше б и не советовал.
почему??? | |
|
|
|
|
|
|
|
для: psychomc
(06.11.2008 в 13:19)
| | >>PS. После таких перлов (Warning: mysql_num_rows(): supplied argument is not a valid MySQL result...) начинает казаться, что лучше б и не советовал.
>почему???
Вы действительно не знаете, из-за чего возникает такое сообщение? | |
|
|
|
|
|
|
|
для: Trianon
(06.11.2008 в 13:24)
| | разве не из-за того что запрос сформирован неправильно?? | |
|
|
|
|
|
|
|
для: psychomc
(06.11.2008 в 13:43)
| | Нет.
Из-за того, что непроверенный признак ошибочного запроса подсунут на вход функции (вместо дескриптора результата запроса корректного). | |
|
|
|
|
|
|
|
для: Trianon
(06.11.2008 в 14:09)
| | хм,спасибо Вам в очередной раз,буду знать ) | |
|
|
|