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

Форум MySQL

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

 

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

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

тема: Полнотекстовой поиск по новостям
 
 автор: ols   (28.11.2008 в 17:20)   письмо автору
 
 

Вообщем в новостях необходимо реаизовать поиск по названию и по содержимому новости
Вот табица


CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `name` text NOT NULL,
  `krn` varchar(100) NOT NULL default '',
  `news` text NOT NULL,
  `data` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `name` (`name`,`news`)



Где name - название новости, news - содержимое
Правильно ли создан запрос в частности
FULLTEXT KEY `name` (`name`,`news`)

дя организации полнотекстового поиска по названию и содержимому

  Ответить  
 
 автор: cheops   (29.11.2008 в 02:53)   письмо автору
 
   для: ols   (28.11.2008 в 17:20)
 

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

  Ответить  
 
 автор: ols   (29.11.2008 в 10:03)   письмо автору
 
   для: cheops   (29.11.2008 в 02:53)
 

тоесть если в таблице скажем 20 записей, из них 2 удовлетворяют условию поиска , то запрос на поиск ничего не выдаст?

  Ответить  
 
 автор: cheops   (29.11.2008 в 12:34)   письмо автору
 
   для: ols   (29.11.2008 в 10:03)
 

Выдает, а вот если искомый результа находится в 11 записях из 20 (более половины всех записей), то не выдает.

  Ответить  
 
 автор: ols   (29.11.2008 в 12:42)   письмо автору
 
   для: cheops   (29.11.2008 в 12:34)
 

А ясно...А есть альтернативы, ведь какими-то методами решается эти проблемы?

  Ответить  
 
 автор: cheops   (29.11.2008 в 12:45)   письмо автору
 
   для: ols   (29.11.2008 в 12:42)
 

Под проблемой что имеется в виду? Поиск даже в том случае, если записи находятся более чем в половине записей? Можно воспользоваться логическим режимом полнотекстового поиска - в нем это ограничение снято.

  Ответить  
 
 автор: ols   (29.11.2008 в 15:04)   письмо автору
 
   для: cheops   (29.11.2008 в 12:45)
 

>Под проблемой что имеется в виду? Поиск даже в том случае, если записи находятся более чем в половине записей?
Да.

>Можно воспользоваться логическим режимом полнотекстового поиска - в нем это ограничение снято.
Можно ли где почитать про логический режим?

  Ответить  
 
 автор: cheops   (30.11.2008 в 12:07)   письмо автору
 
   для: ols   (29.11.2008 в 15:04)
 

Если быстро, то вместо конструкции
MATCH (name,author) AGAINST ('$temp')

Для поиска в логическом режиме следует использовать конструкцию
MATCH (name,author) AGAINST ('$temp*' IN BOOLEAN MODE)

Более подробно об символах и правилах полнотекстового поиска в логическом режиме можно почитать либо в мануале, либо в одной из наших книг.

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

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