Форум Рідного Міста
Ви не ввійшли [Ввійти - Зареєструватися]
Вниз

Версія для друку  
Автор: Тема: Пошук у MySql
Mary Kravets
Новак
*



Повідомлень: 16
Зареєстрований: 16-5-2007
Місто: Львів
Нема на форумі

Настрій: веб-девелопер

[*] написано 22-6-2007 у 14:44
Пошук у MySql


Відомо, що в MySql можна шукати по частинах слів. Коли потрібно знайти по першій частині слова, запит пошуку формується приблизно так:

SELECT name, addr FROM posts WHERE MATCH (name,addr) AGAINST ('слово*' IN BOOLEAN MODE)

А що робити, коли потрібно знайти по закінченню слова( типу на запит "ицтво" результатами будуть "будівництво" і т.п. )?
Перечитала купу доки і так і не знайшла.
Правда, є варіанти типу LIKE або REGEXP...
Поділіться, будь-ласка, досвідом. Буду дуже вдячна :)




Безликий час такий-собі. Ніщо запанувало світом. (с) Олесь Дяк
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Юрій Сєров
Модератор
********

Фотографія користувача


Повідомлень: 10460
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: оптимістичний

[*] написано 22-6-2007 у 15:04


А чим Вам не подобається ?
SELECT name, addr FROM posts WHERE name LIKE "%ицтво"




Nauka-Online.Org - Українська Наукова Інтернет-Спільнота
Рідний край - Колекція знимків України
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Mary Kravets
Новак
*



Повідомлень: 16
Зареєстрований: 16-5-2007
Місто: Львів
Нема на форумі

Настрій: веб-девелопер

[*] написано 22-6-2007 у 15:09


та я так і думаю, просто підозри були, що в запиті пошуку це можна зробити. + пошук працює швидше ніж LIKE



Безликий час такий-собі. Ніщо запанувало світом. (с) Олесь Дяк
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Mary Kravets
Новак
*



Повідомлень: 16
Зареєстрований: 16-5-2007
Місто: Львів
Нема на форумі

Настрій: веб-девелопер

[*] написано 22-6-2007 у 15:16


+ до того всього LIKE зручний тільки у випадку малої к-сті полів. А якщо таким чином потрібно шукати по 10 полям? Тут вже буде тормозить :) Або в випадку LIKE і 10 полів розбивати пошук по полях, наприклад : юзер з випадного списку вибирає, шукати по назві\адресі чи по опису.
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Юрій Сєров
Модератор
********

Фотографія користувача


Повідомлень: 10460
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: оптимістичний

[*] написано 22-6-2007 у 15:24


Можливо тоді краще загнати всю таблицю в масив і в ній вже шукати засобами PHP чи Perl-а ?



Nauka-Online.Org - Українська Наукова Інтернет-Спільнота
Рідний край - Колекція знимків України
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Mary Kravets
Новак
*



Повідомлень: 16
Зареєстрований: 16-5-2007
Місто: Львів
Нема на форумі

Настрій: веб-девелопер

[*] написано 22-6-2007 у 15:34


це буде неефективно при великій кількості рядків у таблиці. В мене десь під 5000. Краще LIKE :) + там зберігаються трошки довгі тексти... Короче багато памяті пхп забере :)
Але мені дивно: ну як же команда Mysql додумалась зробити пошук по початку слова (слово*) і не додумалась зробити по закінченню (*слово), або так як в like %слово%. Мабуть така фіча ще у списку TODO :)




Безликий час такий-собі. Ніщо запанувало світом. (с) Олесь Дяк
Переглянути профіль користувача Зайти на домашню сторінку користувача Переглянути всі повідомлення цього користувача
Андрій Пелещишин
Адміністратор
********

Фотографія користувача


Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі

Настрій: Настрій не вказаний

[*] написано 22-6-2007 у 16:01


Цитата:
ну як же команда Mysql додумалась зробити пошук по початку слова (слово*) і не додумалась зробити по закінченню (*слово),

Думаю, команд MySql ще дуже багато чого не зробила, щоби хоча би наблизитися до нормальних СКБД.
Користайтесь LIKE - принаймні збережеться імовірність переносимості коду на інші платформи.




Переглянути профіль користувача Переглянути всі повідомлення цього користувача
Тарас Гулка
Академік
****

Фотографія користувача


Повідомлень: 899
Зареєстрований: 19-6-2002
Місто: м.Львів, Україна
Нема на форумі

Настрій: стабільний

[*] написано 22-6-2007 у 22:11


Якщо хочеться наваротів і великої швидкості то можна використовавати зовнішні рішення

Наприклад, Sphinx- open-source SQL full-text search engine ( http://sphinxsearch.com/ ) . Сам не користав, але читав дуже позитивні відгуки.
Переглянути профіль користувача Переглянути всі повідомлення цього користувача

  Догори

Статичне дзеркало форуму

Львів
Pоwered by XМB
Developed by Avеnture Media & The XМB Group © 2002-2006



Інші проекти:
Наука-Онлайн - Об'єднання українських науковців
Львів - Фотоблог міста
ІБАС. Інформаційна, бібліотечна та архівна справа - Сучасна освітня спеціальність
School review 5548
Реклама: