![]() |
|
Модераторы: 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 |
Это потому, что у тебя индексы созданы отдельно для каждого поля. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
| 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 |
а какая разница, он наиболее универсален... просто
И он у тебя будет искать в таблице ldu_news в полях news_text и news_title... по умолчанию любой разделитель является логическим OR, только эскейпь строку перед подачей... Чтобы твою логику добавить просто нужно поменять ф-ию
-------------------- ГЫ... |
||||||
|
|||||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
Borland_Delphi_6, а с чего ты взял что fulltext поиск будет тормозить? Вообще-то насколько я знаю, он работает на треть быстрее, нежели тот же like. А других способов поиска по тексту, кроме двух описанных, я не знаю! Просвятите дуралея!
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
IZ@TOP,
Вроде бы в доках написано, что в fulltext таблицы данные будут добавлятся медленнее... AntonioBanderaz, Это я к тому, что мне нет особого смысла использовать твой класс целиком, т.к. поиск у меня будет в одном файле и мне не трудно вручную написать запрос Спасибо! Добавлено @ 11:55 AntonioBanderaz, Хотя я тут подумал (за 2 минуты-то! -------------------- 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 |
AntonioBanderaz,
Попытался я воткнуть в свой скрипт этот класс - пришел к выводу, что нет в этом особого смысла...
Что касается OR: есть страница с заголовком вроде "Обзор Galaxy 6600GE". Если я хочу поискать "Обзор Galaxy" - нет проблем, результат верен, а если "Обзор 6600GE" - то тут уже ничего не выдается. Вопрос в силе - есть ли возможность использовать OR и AND без BOOLEAN MODE? -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
Borland_Delphi_6, так мы же играем на выборке?! Или нет?
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
IZ@TOP,
Чего-то я тебя не понял... -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
Borland_Delphi_6, Ты говоришь о тормазах при вставке данных, но мы ведь поиск юзаем по документам при селекте, а вставки дай бог несколько раз в день делаем.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
IZ@TOP,
Отнюдь, обновлять-то сайт часто надо. Но не это главное, т.к. у меня сервер 4х AMD Opteron... -------------------- 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 |
Никак не возьму в толк: что нужно сделать, чтобы MySQL мне вернула строку лишь в том случае, если есть полное совпадение. Пример:
По запросу "дом" текст 1 должен найтись, а текст 2 - нет. Как такое устроить? Обратите внимание, что искомое слово может содержаться в любом месте текста, поэтому банальное сравнение через "=" не подойдет... -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
||||
|
|||||
| CTAPbIuMABP |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 17.2.2006 Где: Киев Репутация: -1 Всего: 1 |
а конкретно для твоего примера
Это сообщение отредактировал(а) CTAPbIuMABP - 17.2.2006, 15:06 |
||||||
|
|||||||
| AntonioBanderaz |
|
||||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
не всё найдёт, допустим в строке
Слово дом он не найдёт... Добавлено @ 19:40
-------------------- ГЫ... |
||||
|
|||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Спасибо за советы, но я уже решил остановится на другом варианте с использованием RLIKE, который вполне нормально находит точное совпадение, в то же время, если использовать его для поиска одного слова, то выдает больше результатов, чем FULLTEXT Search, т.е. для RLIKE более мягкие условия получаются что-ли... Результат моих (или даже наших?
-------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
А, ну если у тебя сидит 20 авторов и каждый раз в минуту что-то постит... и посетителей в этот момент на сайте в течении часа в районе тысячи... даже в таком случае сомневаюсь что производительность упадет очень сильно... тем более при такой системе... -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
IZ@TOP,
Да с этим уже разобрались -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |