Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Full Text Search


Автор: Secandr 30.8.2005, 11:59
Как этим full text пользоваться?
Создаю всё как написано в http://dev.mysql.com/doc/mysql/en/fulltext-search.html

Ничего не получается smile При поиске ничего не находит!

Версия MySQL 4.0.24

Автор: -=Ustas=- 30.8.2005, 12:31
or die(mysql_error()); пробовал выводить?

Автор: Secandr 30.8.2005, 12:38
Я из phpmyadmin пробовал

Код

SELECT count(*) FROM articles WHERE MATCH (title,body) AGAINST ('database');

выдаёт 0, а значит запрос работает

Автор: Akina 1.9.2005, 12:42
из какой структуры ты запрашиваешь?

Автор: -=Ustas=- 1.9.2005, 15:21
Цитата(Secandr @ 30.8.2005, 12:38)
Я из phpmyadmin пробовал

Код

SELECT count(*) FROM articles WHERE MATCH (title,body) AGAINST ('database');

выдаёт 0, а значит запрос работает

Приведи сюда структуру таблицы, в которой производишь поиск.

Автор: Secandr 1.9.2005, 16:33
Сделал всё тупо!
создал таблицу через phpmyadmin во вкладке SQL-запрос:
Код

CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);

Потом через phpmyadmin забил пару значений в эти поля.

А потом сам запрос:
Код

SELECT count(*) FROM articles WHERE MATCH (title,body) AGAINST ('database');



Akina ты про структуру БД?

Автор: -=Ustas=- 1.9.2005, 16:45
Значит у тебя в тексте нет слова database.

Автор: Secandr 1.9.2005, 16:53
-=Ustas=-
Я искал по тем словам которые есть.
Хотя вопрос: что понимать под словом?

Автор: -=Ustas=- 2.9.2005, 09:18
У меня все пашет нормально, правда есть некоторые глюки с русскими словами, но это уже в настройках мускула надо смотреть.

Автор: Secandr 2.9.2005, 15:09
-=Ustas=- Что такое слово в понимании Full Text Search

Автор: -=Ustas=- 2.9.2005, 15:19
Ну, насколько я понимаю - полнотекстовый поиск.

Автор: Secandr 6.9.2005, 09:56
разобрался. Только всёравно всё ищется крайне медлено...

Автор: -=Ustas=- 6.9.2005, 10:06
Ну ессно будет медленно, если полей много. Для поиска лучше создавать отдельное, заранее проиндексированное поле.

Автор: Secandr 6.9.2005, 11:31
Поле одно, просто информации много

Автор: -=Ustas=- 6.9.2005, 13:04
Ну если одно, тогда мож LIKE быстрее будет?!

Автор: Secandr 6.9.2005, 13:18
-=Ustas=- нет, like ещё медленее работает smile

Автор: -=Ustas=- 6.9.2005, 14:06
Secandr, а по-моему предел не перепрыгнешь. Вот, посмотри здесь по оптимизации - http://dev.mysql.com/doc/mysql/ru/mysql-benchmarks.html, хотя мож ты уже видел это....

Автор: AntonioBanderaz 6.9.2005, 21:24
Пробуй rLike'ом...

Автор: -=Ustas=- 7.9.2005, 08:14
RLIKE использует регулярные выражения, поэтому скорость навряд ли быстрее будет!

Автор: AntonioBanderaz 7.9.2005, 23:15
У мя поиск rlike'ом сделан и на скорость я не жалуюсь...Это мне кажется лучше чем делать full text...

Автор: Ignat 8.9.2005, 09:26
Цитата(AntonioBanderaz @ 8.9.2005, 00:15)
Это мне кажется лучше чем делать full text...

Зависит от количества записей и самого регэкспа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)