Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Полнотекстовый поиск (сортирует НЕ по релевантности)
 
 автор: psychomc   (06.11.2008 в 10:12)   письмо автору
 
 

заранее извиняюсь если вдруг что-то подобное спрашивали.
так вот, производится в скрипте запрос следующего вида:

SELECT * FROM product,kurs
WHERE MATCH (name,description) 
AGAINST ('".$_GET['name']."*' IN BOOLEAN MODE


ищет нормально,не жалуюсь,НО: почему-то сортирует не по релевантности как должно было быть, а как раз наоборот: вхождения,которые лучше всего подходят под запрос почему-то попадают в конец...
в чём может быть причина?

простая табличка, была изменена так:
ALTER TABLE product ADD FULLTEXT (name,description)

  Ответить  
 
 автор: Trianon   (06.11.2008 в 11:43)   письмо автору
 
   для: psychomc   (06.11.2008 в 10:12)
 

>SELECT * FROM product,kurs
>WHERE MATCH (name,description)
>AGAINST ('".$_GET['name']."*' IN BOOLEAN MODE
>
>ищет нормально,не жалуюсь,НО: почему-то сортирует не по релевантности как должно было быть

где написано, что результат будет отсортирован?

  Ответить  
 
 автор: psychomc   (06.11.2008 в 11:50)   письмо автору
 
   для: Trianon   (06.11.2008 в 11:43)
 

Trianon, читал на этом форуме что при полнотекстовом поиске результат сортируется по релевантности...или я забыл что-то в запросе????

  Ответить  
 
 автор: Trianon   (06.11.2008 в 12:13)   письмо автору
 
   для: psychomc   (06.11.2008 в 11:50)
 

Вот поскольку я ничего такого не читал, то и поинтересовался.

  Ответить  
 
 автор: psychomc   (06.11.2008 в 12:20)   письмо автору
 
   для: Trianon   (06.11.2008 в 12:13)
 

ну вот юзаю первую ссылки в yandex:

Mysql.ru:

Когда команда MATCH() используется в выражении WHERE (см. пример выше), возвращенные строки столбцов автоматически сортируются, начиная с наиболее релевантных.

вот собственно интересно почему у меня оно сортирует не по релевантности....

  Ответить  
 
 автор: Trianon   (06.11.2008 в 12:37)   письмо автору
 
   для: psychomc   (06.11.2008 в 12:20)
 

Так у Вас же вроде BOOLEAN MODE стоит
Напишите ORDER BY MATCH... без него.

  Ответить  
 
 автор: psychomc   (06.11.2008 в 12:44)   письмо автору
 
   для: 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....
Извините,не догоняю как такой правильно запрос сформировать

  Ответить  
 
 автор: Trianon   (06.11.2008 в 13:07)   письмо автору
 
   для: 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...) начинает казаться, что лучше б и не советовал.

  Ответить  
 
 автор: psychomc   (06.11.2008 в 13:19)   письмо автору
 
   для: Trianon   (06.11.2008 в 13:07)
 

спасибо,работает но только почему-то без поля description


>PS. После таких перлов (Warning: mysql_num_rows(): supplied argument is not a valid MySQL result...) начинает казаться, что лучше б и не советовал.

почему???

  Ответить  
 
 автор: Trianon   (06.11.2008 в 13:24)   письмо автору
 
   для: psychomc   (06.11.2008 в 13:19)
 

>>PS. После таких перлов (Warning: mysql_num_rows(): supplied argument is not a valid MySQL result...) начинает казаться, что лучше б и не советовал.
>почему???

Вы действительно не знаете, из-за чего возникает такое сообщение?

  Ответить  
 
 автор: psychomc   (06.11.2008 в 13:43)   письмо автору
 
   для: Trianon   (06.11.2008 в 13:24)
 

разве не из-за того что запрос сформирован неправильно??

  Ответить  
 
 автор: Trianon   (06.11.2008 в 14:09)   письмо автору
 
   для: psychomc   (06.11.2008 в 13:43)
 

Нет.
Из-за того, что непроверенный признак ошибочного запроса подсунут на вход функции (вместо дескриптора результата запроса корректного).

  Ответить  
 
 автор: psychomc   (06.11.2008 в 14:12)   письмо автору
 
   для: Trianon   (06.11.2008 в 14:09)
 

хм,спасибо Вам в очередной раз,буду знать )

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования