|
|
|
|
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)
|
Как сделать запрос, чтобы также искать сразу в нескольких таблицах?
Я бы сделал для трёх таблиц три отдельных таких запроса, а потом совместил массивы результатов, но хотелось бы, чтобы релевантность сохранилась среди трёх таблиц сразу. | |
|
|
|
|
|
|
|
для: maxam
(14.10.2011 в 09:41)
| | Скорее всего так не получится, так как индекс построен по каждой таблице в отдельности, а релевантность вычисляется при помощи индекса. Как вариант, реализовывать полнотекстовый поиск самостоятельно, сохраняя индекс в четвертой таблице. | |
|
|
|
|
|
|
|
для: cheops
(14.10.2011 в 18:42)
| | А это как? | |
|
|
|
|
|
|
|
для: maxam
(14.10.2011 в 23:30)
| | Не пользоваться встроенным алгоритмом, а реализовать его самостоятельно. | |
|
|
|
|
|
|
|
для: 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
(15.10.2011 в 22:32)
| | Так? | |
|
|
|