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

Форум MySQL

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

 

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

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

тема: Запрос с полнотекстовым поиском
 
 автор: xpom   (13.02.2012 в 20:07)   письмо автору
 
 

Как создать запрос с полнотекстовым поиском, если нужно найти множество слов в одном запросе?

Может можно вложить запрос в сам полнотекстовый поиск?


Select  ....MATCH (name) AGAINST ('Select ...FROM....')...FROM...

  Ответить  
 
 автор: cheops   (13.02.2012 в 20:13)   письмо автору
 
   для: xpom   (13.02.2012 в 20:07)
 

Погодите, полнотекстовый поиск работает так, что ему можно скармливать любое количество слов - он будет искать наиболее релевантное соответствие, просто подставляйте в AGAINST строку со словами через пробел (только имейте в виду, что порядок имеет значение, как в поисковых системах).

  Ответить  
 
 автор: xpom   (13.02.2012 в 21:30)   письмо автору
 
   для: cheops   (13.02.2012 в 20:13)
 

немножко не так нужно. Есть массив слов, которые нужно найти по очереди, т.е. сравнить, если совпадает с какими то словами выводить их id, чтобы в цикл запрос к базе с полнотекстовым поиск не заносить...

  Ответить  
 
 автор: cheops   (14.02.2012 в 12:56)   письмо автору
 
   для: xpom   (13.02.2012 в 21:30)
 

Ммм... не очень пока понятно. Т.е. есть набор слов и мы должны найти соответствия им по отдельности? Релевантность тут я так понимаю уже значения не имеет?

  Ответить  
 
 автор: xpom   (14.02.2012 в 13:44)   письмо автору
 
   для: cheops   (14.02.2012 в 12:56)
 

Да, да, точнее набор фраз(два, три слова)...и нужно найти им соответствие по отдельности, по одному полю в таблице, каждая (точнее там будим выбирать еще с условием WHERE, поле должно быть равным определенному значению)строка может соответствовать одному словосочетанию из набора...
Наверное без вложения запроса в цикл программы, не обойтись...
Релевантность не имеет значения, нужна точность совпадения.
Да и в таблице может оказаться две строки, одна если совпадет, то полнотекстовый, я так понимаю не найдет...
Может сделать LIKE-ом? Разбить словосочетания на слова и искать, если есть совпадение слова то выводить...много ли я потеряю в скорости, если LIKE в цикл программы помещу?

  Ответить  
 
 автор: cheops   (14.02.2012 в 16:46)   письмо автору
 
   для: xpom   (14.02.2012 в 13:44)
 

Если вы грубо говоря сравниваете одно слово с другим, а не ищите по огромному массиву текста, то лучше действительно использовать LIKE.

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

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