Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выбор предложений где есть нужное слово, регулярное выражение 
V
    Опции темы
g27
Дата 13.3.2010, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Здравствуйте,
база Mysql

Надо выбрать те записи где есть совпадение. То есть есть таблица предложений и надо проверить в каким есть данное слово и их вывести. я Пытался так 

SELECT * FROM sentences WHERE text_sentence REGEXP '[[:<:]]slovo[[:>:]] | [[:<:]]slovo[[:punct:]]'  

Но что-то не хочет находить совпадения если с начала строки стоит. Ну вообщем может кто сталкивался и уже знает все нюансы? Спасибо.
PM MAIL Skype   Вверх
Данкинг
Дата 13.3.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Я не работал с Mysql, но разве обычные операторы вроде LIKE там не действуют?



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
g27
Дата 13.3.2010, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



действуют, но там много букв выходит получается

Добавлено @ 21:04
'^slovo|[[:<:]]slovo[[:>:]]' пока как-то так....

Это сообщение отредактировал(а) g27 - 13.3.2010, 21:05
PM MAIL Skype   Вверх
skyboy
Дата 13.3.2010, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



не надо для этих целей использовать regexp.
 либо используй полнотекстовый индекс, либо внешний индексатор(рекомендую sphinx
)
при твоем подходе сильно теряешь в скорости. потому что индексы не используются.

Добавлено через 49 секунд
и ни о какой нормализации слов("мячей" -> "мяч") говорить не приходится, хотя не знаю даже, надо ли тебе это.
PM MAIL   Вверх
g27
Дата 13.3.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



не понимаю как мне помогут индексы в данном случае? Мне всёравно придётся пересмотреть все предложения, потом как слово может быть в любом его месте да и важна уникальность, однокоренные не подходят.
PM MAIL Skype   Вверх
skyboy
Дата 13.3.2010, 23:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



механизм полнотекстового поиска при создании полнотекстового индексы вычленяет слова. за счет этого, работа с полнотекстовым индексом просто обязана быть намного быстрее, чем regexp/like/locate.

Добавлено @ 23:54
Цитата(g27 @  13.3.2010,  20:42 Найти цитируемый пост)
да и важна уникальность, однокоренные не подходят

во внешних индексаторах(тот же sphinx) нормализация - настраиваема. если не надо - просто отключаешь.
в fulltext search, кажется, ничего похожего нет. 
так что ненужный функционал мешаться под ногами не будет.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




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


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

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