Еще вопрос по поиску FULLTEXT'oм...

Asar

Новичок
Еще вопрос по поиску FULLTEXT'oм...

Итак, начитавшись местных/неместных статей и сообщений в форумах, поиском найденных, приступил к реализации поиска по сайту в разделах, данные из которых запихнуты в БД.

В результате все нормально работало для поиска внутри одной таблицы.
Но мне нужно искать не в одной. Очевидно, можно делать несколько запросов (по числу таблиц), но есть подозрение, что имеется более рациональный вариант (с одним запросом). Попробовал было тупо сделать:

SELECT *, MATCH tab1.Field1 AGAINST ('телефоны')+MATCH tab1.Field2 AGAINST ('телефоны')+MATCH tab2.Field1 AGAINST ('телефоны')+MATCH tab2.Field2 AGAINST ('телефоны') as relev FROM tab1, tab2 ORDER BY relev DESC

Ну... Тупо попробовал - тупой и результат.

Вопросы:
1. Есть ли вариант с одним запросом, как под него копаться и чем он лучше 2-х/3-х запросов отдельных (быстрее?)
2. С помощью фуллтекста, как я понимаю, не выйдет искать части слов (т. е. задать "коробк", чтоб искались "коробки" и "коробка") - во всяком случае в вариантах 3 версии МайСкуЕля?
3. Тормознее ли поиск с помощью фуллтекста по сравнению с LIKE и в каких случаях?
 

Yurik

/dev/null
1. Тупой дизайн БД, потом тупо попробовал - потому тупой результат. В правильно спроектированной БД такие вопросы возникнуть не могут.
2. Нет (как и слова из 3 букв каковых в русском в отличии от английского много. надо перекомпилировать БД с ограничением на 2 символа вместо 3)
3. "Нет" потому что это индекс . "Да" потому что алгоритм на порядок сложнее. Соотношение Да/Нет надо мерять на конкретных запросах к конкретному объёму данных.
 

Asar

Новичок
3. Понял. Спасибо за ответ.
2. Понял. Спасибо за ответ.
1. А у меня неправильно спроктированная БД. Или неправильно спроектированный запрос. Потому я и задаю этот вопрос. Обращаю внимание - не вопрос "почему тупой результат", а "есть ли вариант..."
 

akxxiv

Новичок
Мне так катца, надо создать индексную таблицу, в которой будет обработаный текст и ссылка на таблицу.айди где он встречается. Потом по этой индексной таблицы делается фултекстный индекс и ищется по нему, в результате выдавая ссылки на нужные страницы.
 

Asar

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