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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск слов по текстовому полю в базе 
:(
    Опции темы
zone51
Дата 21.1.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет всем! Помогите пожалуйста решить задачу. Есть в базе таблица а в таблице поле. И поле это текстовое. В поле хранятся вопросы или ответы на вопросы - простые типа 'Привет как дела?' и т д
Пользователь вводит в поле ввода строку или фразу типа 'привет', 'привет как дела' или какое то из слов. Требуется простой поиск без наворотов по каждому слову, фразе, идеально независимо от регистра или порядка. Пожскажите любые идеи или есть готовые опен-сорс решения. Спасибо.
 smile  smile 


--------------------
The truth is out there
PM MAIL   Вверх
ArNic
Дата 21.1.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а чем LIKE не подходит?

Это сообщение отредактировал(а) ArNic - 21.1.2010, 23:22
PM MAIL ICQ   Вверх
zone51
  Дата 21.1.2010, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ArNic, 
Цитата

а чем LIKE не подходит?


Спасибо. Если честно не думал что LIKE может предоставить все что нужно - поиск вне зависимости от порядка слов и т д. Можете дать конкретный пример?


--------------------
The truth is out there
PM MAIL   Вверх
skyboy
Дата 21.1.2010, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(ArNic @  21.1.2010,  22:20 Найти цитируемый пост)
а чем LIKE не подходит?

я не автор, но все же могу заметить, что like:
a) должно быть намного медленнее full text search, потому как только шаболн "<что-то>%" сможет использовать индекс. остальные более сложные запросы с индексом работать не смогут
б) а как же "независимость от порядка слов"? генерировать все возможные перестановки? "%привет%как%дела%", "%как%привет%дела%" и ещё 4 варианта только для фразы из трех слов? когда только поиск имеет сложность O(n!) и используются механизмы перебора текста(like ищет как раз перебором - никакая оптимизация без дополнительных конструкций-индексов не представляется мне возможной)
zone51, либо full text search, либо внешний относительно СУБД индексатор Sphinx. Варианты ещё есть, но я названные считаю достаточно быстрыми и достаточно гибкими(впрочем, за родной полнотекстовый поиск в mysql не уверен)

Добавлено через 1 минуту и 22 секунды
Цитата(zone51 @  21.1.2010,  22:33 Найти цитируемый пост)
и т д. 

неужели, кроме независимости от порядка слов и от регистра есть ещё какие-то задачи? поиск по синонимам? поиск с учетом возможных орфографических ошибок? перевод с разных языков?
PM MAIL   Вверх
zone51
Дата 21.1.2010, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



skyboy, 
Цитата

неужели, кроме независимости от порядка слов и от регистра есть ещё какие-то задачи? поиск по синонимам? поиск с учетом возможных орфографических ошибок? перевод с разных языков? 


Спасибо. Нет нужен пока что минимум. Мне хотя бы в сторону куда копать, как можно проще вариант но чтобы давал осмысленные результаты. 


--------------------
The truth is out there
PM MAIL   Вверх
ArNic
Дата 22.1.2010, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(skyboy @ 21.1.2010,  23:35)
Цитата(ArNic @  21.1.2010,  22:20 Найти цитируемый пост)
а чем LIKE не подходит?

я не автор, но все же могу заметить, что like:
a) должно быть намного медленнее full text search, потому как только шаболн "<что-то>%" сможет использовать индекс. остальные более сложные запросы с индексом работать не смогут
б) а как же "независимость от порядка слов"? генерировать все возможные перестановки? "%привет%как%дела%", "%как%привет%дела%" и ещё 4 варианта только для фразы из трех слов? когда только поиск имеет сложность O(n!) и используются механизмы перебора текста(like ищет как раз перебором - никакая оптимизация без дополнительных конструкций-индексов не представляется мне возможной)
zone51, либо full text search, либо внешний относительно СУБД индексатор Sphinx. Варианты ещё есть, но я названные считаю достаточно быстрыми и достаточно гибкими(впрочем, за родной полнотекстовый поиск в mysql не уверен)

Добавлено @ 23:36
Цитата(zone51 @  21.1.2010,  22:33 Найти цитируемый пост)
и т д. 

неужели, кроме независимости от порядка слов и от регистра есть ещё какие-то задачи? поиск по синонимам? поиск с учетом возможных орфографических ошибок? перевод с разных языков?

Тогда согласен, полнотекстовый поиск. Порядок не учел  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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