|
|
|
| FULLTEXT
Катастрофа, я в панике.
Создаю я полнотекстовый индекс с помощью интерфейса phpmyadmin на трех полях тексте заголовке и ключевых словах. И все вроде нормально, ищет. Потом думаю посмотрю-ка я на сколько мне индекс помогает взял и удалил его. Опять ищу? а время тоже самое, что и с индексом. Я и так и эдак, но ничего не получается. Подскажите пожалуйста, что мне делать.
Информация:
phpMyAdmin 2.5.7-pl1
В таблице находиться 368 элементов. Правда из них 364 одинаковых.
Ищу с помощью функции IN BOOLEAN MODE
Да, еще знаете в phpMyAdmin, где информация про Индексы, есть графа Количество элементов вот там у меня всего 1. (Кто делал что-то подобное скажите какая цифра у Вас) А раньше вообще ничего не было.
Кодировка latin1_swedish_ci | |
|
|
|
|
|
|
|
для: Ziq
(28.07.2005 в 20:43)
| | Хм... а FULLTEXT не ускоряет процесс, он в принципе предоставляет возможность полнотекстового поиска, т.е. без него ничего искаться не должно. | |
|
|
|
|
|
|
|
для: cheops
(28.07.2005 в 21:07)
| | А чем он тогда отличается от like '%текст поиска%' | |
|
|
|
|
|
|
|
для: Ziq
(28.07.2005 в 21:37)
| | Он ищет фразу и выдаёт результаты по коэффициенту реливантности http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5311. Т.е. LIKE выведет только 'текст поиска', а полнотекстовый поиск выведит
'текст поиска'
'поиска текст'
'текст'
'поиска'
и отсортирует результаты в порядке максимального соответствия искомой фразы. Ну и побыстрее ищет чем оператор RLIKE, только проявляется это на больших объёмах текста и данных. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 00:29)
| | А что на счет поля количество элементов. Какое у Вас значение и почему у меня так мало. | |
|
|
|
|
|
|
|
для: Ziq
(29.07.2005 в 06:20)
| | Это не нормально - попробуйте воссоздать индекс (он бывает слетает) - нажмите на кнопку редактирования в phpMyAdmin и сохраните его по новой. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 12:45)
| | Я все это первым делом попробовал, но безуспешно. Даже таблицу очистил и все индексы заново создал. И такая фигня со всеми индексами, кроме primary. (Поле razd not null) См. прикрепленный файл. И еще если не трудно, то дайте ссылочку той версии, которую нужно качать, но не mysql.com/downloads/, а до самой версии. А то я скачал в тот раз самую новую, да не ту (40 mb).
Заранее ОГРОМНОЕ СПАСИБО. | |
|
|
|
|
|
|
|
для: Ziq
(30.07.2005 в 08:56)
| | А какая версия MySQL используется. Для работы из PHP лучше качать MySQL 4.0 со страницы http://dev.mysql.com/downloads/mysql/4.0.html, для этого ищем слово Windows и выбираем "Windows (x86)" (25.1 Мб) http://dev.mysql.com/get/Downloads/MySQL-4.0/mysql-4.0.25-win32.zip/from/pick - ссылка ведёт на список зеркал, откуда и производится загрузка http://dev.mysql.com/get/Downloads/MySQL-4.0/mysql-4.0.25-win32.zip/from/http://ftp.citkit.ru/pub/MySQL/ | |
|
|
|
|
|
|
|
для: cheops
(30.07.2005 в 12:15)
| | Переустановил я MySQL. Но проблем меньше не стало. Во-первых, в поле количество элементов стоит "Нет". Ао-вторых, по-моему хуже стала поисковая система. Например, когда ищешь слово сайт, то сообщенние со словом сайтов отображаться не будет. Подскажите, пожалуйста, что с этим делать. | |
|
|
|
|
|
|
|
для: Ziq
(02.08.2005 в 06:45)
| | Ну ты хочешь всего и сразу:)
Полнотекстовый поиск, он на то и полнотекстовый, что ищет текст целиком. Чтобы расширить возможности, посмотри в документации операторы поиска. В приведенном примере тебе поможет * после "сайт", т.е. "сайт*", надет и "сайтов".
Да, и при применении in boolean mode наличие индекса full text не обязательно, но это замедляет процесс. При этом, сортировка по релевантности не происходит, но и отсутствует, на мой взгяд дурацкий, 50% порог:)
ЗЫ: может, ничего нового не сообщил, но надеюсь, хоть чем-то помог))) | |
|
|
|
|
|
|
|
для: Ziq
(02.08.2005 в 06:45)
| | А у вас большая таблица? Вы не можете её со всеми потрохами выложить в виде бинарных файлов - чтобы на локальном хосте с ней можно было повозится... уж очень интересно, что за чудо такое. | |
|
|
|
|
|
|
|
для: cheops
(02.08.2005 в 13:17)
| | Наверно завтра с утра выложу, а сегодня еще повожусь. | |
|
|
|
|
|
|
|
для: Ziq
(03.08.2005 в 06:58)
| | тоже вчера бился весь вечер с похоже задачей. Есть таблица, в ней два столбца "page_name" и "page_content". Надо выдать все page_name для которых в page_content присутствует определенное выражение, например "VAC". Помогите разобраться пожалуйста. В архиве дамп таблицы. | |
|
|
|
|
|
|
|
для: localGhost
(03.08.2005 в 07:28)
| | Нет, при полнотектовом поиске можно искать только слова больше 3-х символов - меньше не получится, вернее получится, но только после перекомпиляции MySQL. | |
|
|
|
|
|
|
|
для: cheops
(02.08.2005 в 13:17)
| | Ура!!! Разобрался. Все починил. Правда сам до конца не понял как, но вроде с помощью команды
optimize table table_name
|
| |
|
|
|
|
|
|
|
для: Ziq
(05.08.2005 в 06:56)
| | А если у тебя из 368 элементов 364 одинаковых, то 50%-ый барьер для MATCH ты никак не преодолеешь. | |
|
|
|
|
|
|
|
для: OZ_
(17.08.2005 в 16:57)
| | IN BOOLEAN MODE | |
|
|
|
|
|
|
|
для: Ziq
(18.08.2005 в 06:47)
| | sorry, не заметил. | |
|
|
|