Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск в БД, какой алгоритм лучше? 
:(
    Опции темы
proger
Дата 5.12.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 10.10.2004

Репутация: нет
Всего: 1



Здравствуйте.
В БД есть поле тип - TEXT
На сайте есть форма поиска. Если пользователь ввел для поиска фразу (содержит более одного слова) то как искать в базе?
Я вот думаю разбить поисковую фразу на слава и запрост строить с перечисление слов в таком ввиде
Код

SELECT * FROM tab WHERE mytext LIKE 'слово1%' OR mytext LIKE 'слово2%' OR mytext LIKE 'слово3%'

У кого есть какие мысли?
PM MAIL   Вверх
skyboy
Дата 5.12.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



медленнее этого - только вытягивать поочередно все записи в РНР и искать при помощи preg_match.
то, что тебе надо реализовать, называется полнотекстовым поиском(fulltext search).
есть встроенные в СУБД(кто знает, какую ты там используешь?) механизмы, есть внешние относительно БД средства(Sphinx etc). И что угодно будет во много раз бысртее, чем LIKE в SQL запросе.
PM MAIL   Вверх
proger
Дата 5.12.2010, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 10.10.2004

Репутация: нет
Всего: 1



Цитата(skyboy @ 5.12.2010,  16:49)
медленнее этого - только вытягивать поочередно все записи в РНР и искать при помощи preg_match.
то, что тебе надо реализовать, называется полнотекстовым поиском(fulltext search).
есть встроенные в СУБД(кто знает, какую ты там используешь?) механизмы, есть внешние относительно БД средства(Sphinx etc). И что угодно будет во много раз бысртее, чем LIKE в SQL запросе.

mysql
PM MAIL   Вверх
skyboy
Дата 6.12.2010, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



ну, в mysql есть fulltext search. но sphinx быстрее.
PM MAIL   Вверх
bars80080
Дата 15.12.2010, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



Цитата(skyboy @  6.12.2010,  10:59 Найти цитируемый пост)
но sphinx быстрее. 

я так понимаю это инсталируемая библиотека. а нет ли его просто в виде подключаемых скриптов?
PM MAIL WWW   Вверх
skyboy
Дата 15.12.2010, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(bars80080 @  15.12.2010,  17:00 Найти цитируемый пост)
я так понимаю это инсталируемая библиотека

это приложение. отдельно работающее.
Цитата(bars80080 @  15.12.2010,  17:00 Найти цитируемый пост)
а нет ли его просто в виде подключаемых скриптов? 

индексатор на PHP? да, есть такое, но не могу вспомнить, как же называется.
PM MAIL   Вверх
skyboy
Дата 15.12.2010, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



вот, список нашел
использовал Sphider, нареканий не было. потом поставил Sphinx. к sphider'y не возвращался.
PM MAIL   Вверх
bars80080
Дата 16.12.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



ок, почитаю
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.