(PHP) Полнотекстовый посик в нескольких таблицах

Geen
Дата: 28.09.2006 14:54:51
Итак есть десяток таблиц, нужно пройтись поиском типа

SELECT * FROM tbl
WHERE MATCH (col) AGAINST ('test')
(количество столбцов везде непредсказуемо разное)
на выходе учитывать в какой именно нашли (в переменную)

Результат сортировать по релевантности относительно всех таблиц
Kulavert
Дата: 28.09.2006 15:00:32
А что значит "непредсказуемо разное"? - будете sql-выражение динамически строить с непредсказуемыми названиями столбцов?
Geen
Дата: 28.09.2006 15:02:07
угу... т.е. смотреть в сторону sql?
таблицы и столбцы известны
мне бы конструкцию общую осознать
Kulavert
Дата: 28.09.2006 15:20:37
Ну если ищете в несвязанных таблицах и хотите общую сортировку, то
1) СЕЛЕКТ * наверное не получится;
2) с учетом 1:
SELECT tbl.pk1, 'tbl' AS TableName FROM tbl
WHERE MATCH (col) AGAINST ('test')
UNION
SELECT tbl2.pk2, 'tbl2' FROM tbl2
WHERE MATCH (col2) AGAINST ('test')
UNION
...
ORDER BY -- А вот насчет сортировки по релевантности... не знаю, сорри
Geen
Дата: 28.09.2006 15:28:43
AS и UNION
я знаю... ладно, подождем зубров:)
Kulavert
Дата: 28.09.2006 15:42:46
Они спят...
sqllex
Дата: 29.09.2006 21:48:58
Релевантность - понятие относительное и довольно таки расплывчатое.
Можно хранить в отдельной таблице отношение каждого фразеологизма к всему тексту (частота, контекст употребления, отношение к теме материала и т.п. в зависимости от задачи). По этому и сортировать.
Дата документа (материала) тоже может влиять на релевантность (например, текст на компьютерную тематику 1995 года по сравнению с похожим 2005 года проиграет в релевантности, если не идет речь об истории).
На эту тему можно писать и писать. Без конкретно поставленной задачи врядли получится попасть в яблочко с ответом :).
DocAl
Дата: 29.09.2006 23:20:18
Ну, вероятно, имеется в виду встроенный подсчёт релевантности, всё же..
Geen
Дата: 03.10.2006 15:30:47
действиьельно, для начала хотелось бы использовать внутренний WHERE MATCH (col) AGAINST ('test')

однако с ужасом представляю себе этот UNION
идею бы...
4m@t!c
Дата: 03.10.2006 17:27:38
автор
(количество столбцов везде непредсказуемо разное)

А как вы определяете, для каких столбцов используется полнотекстовый поиск?
автор
Результат сортировать по релевантности относительно всех таблиц

У меня возникает сомнение в корректности структуры БД. Зачем хранить однородную информацию в разных таблицах, в разных столбцах и все это замешано на непредсказуемости?

В любом случае, когда вы ответите на вопрос: "Как выбираются столбцы для полнотекстового поиска?" - будете одной ногой в нужном месте.
----------------------------------------
Артисты не приехали, приехали цыгане