Автор Тема: FULLTEXT  (Прочитано 5956 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« : 05 Июня 2006, 19:42:36 »
всем приветик. ;)
подскажите: нельзя объявить индекс fulltext для столбчика longtext???
странно по-моему. разве нет?
т.е. он, конечно, открывает табличку. принимает данные, но нет поиска.
например, вносим данные в поля title [text] и content[longtext]:
\'О компании\',\'Windows XP (кодовое название при разработке — Whistler; внутренняя версия — Windows NT 5.1) — это операционная система\'
теперь делаем запрос:
SELECT * FROM t WHERE MATCH (title,content) AGAINST (\'компании\')
работает.
SELECT * FROM t WHERE MATCH (title,content) AGAINST (\'версия\')
а вот этот запрос возвращает нулевой результат. :(
делаем иначе:
SELECT * FROM t WHERE content LIKE \'%версия%\'
этот сработал!
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« Ответ #1 : 05 Июня 2006, 20:12:21 »
вот странно. сделала content не longtext, как было раньше, а text.
и всё равно не работает запрос:
SELECT * FROM t WHERE MATCH (title,content) AGAINST (\'версия\').
пока-пока. :)

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« Ответ #2 : 06 Июня 2006, 22:37:29 »
наверное "версия" содержится более чем в 50% строк
На Машине Тьюринга далеко не уедешь.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« Ответ #3 : 08 Июня 2006, 14:09:42 »
Цитировать
AnnA:
вносим данные в поля title [text] и content[longtext]:

\'О компании\',\'Windows XP (кодовое название при разработке — Whistler; внутренняя версия — Windows NT 5.1) — это операционная система\'

 только в одной!
одна запись в таблице.

поиск работает, если к запросу добавить  IN BOOLEAN MODE

а что касается longtext, то в документации написано, что
индекс FULLTEXT можно объявить только для полей типа varchar   и text

;)

в общем - сама спросила - сама ответила.
более-менее разобралась, но всё равно ещё не все вопросы закрыты.
пока-пока. :)

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« Ответ #4 : 10 Июня 2006, 01:10:05 »
Цитировать

а что касается longtext, то в документации написано, что
индекс FULLTEXT можно объявить только для полей типа varchar и text


под этим понимается что индекс можно создавать только на строковых или текстовых полях, а не на полях типа BLOB. А не то что можно только на TEXT, но нельзя на MEDIUMTEXT, LONGTEXT и т.д.
На Машине Тьюринга далеко не уедешь.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« Ответ #5 : 12 Июня 2006, 14:35:00 »
не буду спорить. Возможно вы правы, но моя практика показывает совершенно обратное (почти :)) - если поле longtext - поиск в нём не работает. Если text - работает лишь при включенном IN BOOLEAN MODE,
а вот, если varchar - то работае всё, как и должно. пробовала на версии MySQL 4.1.12
Не знаю, может в чём-то ошиблась при указании кодировок, при создании таблиц... Но в общем-то старалась всё делать "как написано".
пока-пока. :)

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
FULLTEXT
« Ответ #6 : 13 Июня 2006, 22:53:02 »
> Возможно вы правы, но моя практика показывает совершенно обратное (почти ) - если поле longtext - поиск в нём не работает. Если text - работает лишь при включенном IN BOOLEAN MODE

AnnA, то что у вас не работает поиск для поля LONGTEXT говорит о ваших кривых руках. То что у вас находится слово при BOOLEAN MODE и не находится при обычном поиске, скорее говорит о том что либо слово содержится более чем в 50% строк таблицы, либо еще о каких-то ваших заморочках, либо о баге в MySQL.

А версию я бы вам советовала обновить в любом случае.
На Машине Тьюринга далеко не уедешь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28