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

Форум MySQL

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

 

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

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

тема: Полнотекстовый поиск
 
 автор: maxam   (14.10.2011 в 09:41)   письмо автору
 
 

mysql> SELECT id,MATCH (title,body) AGAINST ('Tutorial all') FROM articles;
+----+-----------------------------------------+
| id | MATCH (title,body) AGAINST ('Tutorial all') |
+----+-----------------------------------------+
|  1 |                        0.64840710366884 |
|  2 |                                       0 |
|  3 |                        0.66266459031789 |
|  4 |                                       0 |
|  5 |                                       0 |
+----+-----------------------------------------+
5 rows in set (0.00 sec)

Как сделать запрос, чтобы также искать сразу в нескольких таблицах?

Я бы сделал для трёх таблиц три отдельных таких запроса, а потом совместил массивы результатов, но хотелось бы, чтобы релевантность сохранилась среди трёх таблиц сразу.

  Ответить  
 
 автор: cheops   (14.10.2011 в 18:42)   письмо автору
 
   для: maxam   (14.10.2011 в 09:41)
 

Скорее всего так не получится, так как индекс построен по каждой таблице в отдельности, а релевантность вычисляется при помощи индекса. Как вариант, реализовывать полнотекстовый поиск самостоятельно, сохраняя индекс в четвертой таблице.

  Ответить  
 
 автор: maxam   (14.10.2011 в 23:30)   письмо автору
 
   для: cheops   (14.10.2011 в 18:42)
 

А это как?

  Ответить  
 
 автор: cheops   (15.10.2011 в 22:21)   письмо автору
 
   для: maxam   (14.10.2011 в 23:30)
 

Не пользоваться встроенным алгоритмом, а реализовать его самостоятельно.

  Ответить  
 
 автор: maxam   (15.10.2011 в 22:32)   письмо автору
 
   для: cheops   (15.10.2011 в 22:21)
 

1. Создавать временный массив из 10 000 записей по каждой таблице в переменную $results1, $results2, $results3?
2. Объеденить массивы array_merge ($results1, $results2, $results3)?
3. Реализовать поиск средствами PHP, параллельно оценивая схожесть (preg_match_all)?
4. Отсортировать результаты относительно схожести (sort)?

  Ответить  
 
 автор: Maxam   (18.10.2011 в 20:33)   письмо автору
 
   для: maxam   (15.10.2011 в 22:32)
 

Так?

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

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