![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Уже замучался с попытками сделать нормальный поисковик для своего сайта. В оригинале используется такой запрос:
Но он выдает какие-то совершенно дикие результаты, что поиском назвать ну никак нельзя. Например, по запросу "Рома" выдает страницу со словом "романтика" ну и т.д. Если же убрать "%", то не выдает почти ничего. Возможно, кто-то уже пытался реализовать более "интеллектуальный" поиск и будет не жалко поделится? Ну или хоть советы какие-то дайте чтоли... Стоит ли применять "полнотекстовый" поиск, если таблица не очень большая? Какие это даст преимущества/недостатки? -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
Поищи доки про полнотекстовой поиск
-------------------- ГЫ... |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Или LIKE заюзай.
String Comparison Functions Full-Text Search Functions Это сообщение отредактировал(а) -=Ustas=- - 4.2.2006, 06:34 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
AntonioBanderaz
Я его уже реализовал, но нужно ли оно мне? Насколько снизится скорость? -=Ustas=- Тоже пробовал. как правило не слишком удачные результаты выдает. -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
Сам замерь... Я думаю не на много. Добавлено @ 17:01 Это уже не мне решать ))))) Замерь и посмотри что по твоим критериям выдаст наиболее приемлимый результат... -------------------- ГЫ... |
|||
|
||||
| Borland_Delphi_6 |
|
||||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Блин, что-то я никак врубится не могу. Как мне с помощью LIKE сделать такую фигню: поиск ищет точное слово, но оно может встречатся в любом месте в тексте? Т.е. есть текст:
Мне нужно найти слово "сочный". Если сделать "%сочный%", то помимо страницы с текстом №1, выдаст также и страницу №2. Если сделать просто WHERE smth = 'сочный', то не найден ни того, ни другого -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
||||
|
|||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
RLIKE попробуй либо регульками в базе, а я бы сделал полнотекстовым!!!
-------------------- ГЫ... |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Вот что у меня получилось:
Как видно, далеко не самый удачный вариант. Как бы эти длинные условия ("news_title RLIKE '$logic_or[0]' OR news_text RLIKE '$logic_or[0]' OR news_title RLIKE '$logic_or[1]' OR news_text RLIKE '$logic_or[1] OR news_title RLIKE '$logic_or[2]' OR news_text RLIKE '$logic_or[2]'") заменить регулярными выражениями? Насколько я понимаю, это ведь можно сделать? -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Borland_Delphi_6, тебе же уже советовали полнотекстовый поиск делать.... И выход этот правильный, т.к. через созданный индекс можно производить не физический, а логический поиск. Правда это если мускул не менее 4-ой версии.
И так далее, дальше можешь сам почитать Это сообщение отредактировал(а) -=Ustas=- - 10.2.2006, 09:34 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
-=Ustas=-
Да я пытаюсь, но полнотекстовый поиск не могу наладить для поля news_title, а для news_text все сделать удалось. Можно увидеть, какой запрос необходимо выяснить, чтобы разрешить полнотекстовый поиск для опр. поля? -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Borland_Delphi_6, тонкую настройку "Тонкая настройка полнотекстового поиска в MySQL" смотрел? Может тебе переменный надо настроить.
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
-=Ustas=-
Мне честно говоря этот полнотекстовый поиск не очень симпатизирует, из-за того, что он сам решает, на какие слова реагировать, а на какие нет, а также из-за своей нагрузки на БД... Но попробую чего-нибудь сделать. Мой вопрос по поводу оптимизации запроса в силе. Если непонятно, что я пытался спросить - дайте знать -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| Borland_Delphi_6 |
|
||||||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Короче, делаю два запроса на создание индексов поиска:
Индексы вроде создаются. Дальше пытаюсь искать таким вот запросом:
И получаю ошибку:
Причем если искать по одному полю, то все ок. В чем трабл? -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
||||||
|
|||||||
| AntonioBanderaz |
|
||||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
Ну как-то так короче... Добавлено @ 19:18
А так? -------------------- ГЫ... |
||||
|
|||||
| -=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 17 Всего: 69 |
Это потому, что у тебя индексы созданы отдельно для каждого поля. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |