Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 11, 2011 02:46:49

vlad0405
От:
Зарегистрирован: 2011-07-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск вхождения в большой базе

гуру питона, подскажите пожалуйста.
У меня есть файл, в котором 25 миллионов предложений.

Есть список заданных фраз и мне надо делать выборку по условию,
все слова из заданной фразы встречаются в предложении.

До недавнего времени объемы заданных фраз были маленькие и я делал просто методом перебора строчек файла.
При заданном количестве фраз от 5 до 20 обработка проходила за 5-10 минут и меня устраивало.

Но сейчас объемы поиска могут значительно возрасти, и такой подход уже не годится.
В оперативку весь файл не помещается.

MySQL будет очень медленно на таком объеме работать.
Подскажите что можно попробовать?



Офлайн

#2 Окт. 11, 2011 05:21:43

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

поиск вхождения в большой базе

я для этих целей использовал mongoDB (выборка по нескольким тегам), база около 5М “предложений”, искалось в течении секунды.

Офлайн

#3 Окт. 11, 2011 17:33:33

vlad0405
От:
Зарегистрирован: 2011-07-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск вхождения в большой базе

o7412369815963
я для этих целей использовал mongoDB (выборка по нескольким тегам), база около 5М “предложений”, искалось в течении секунды.
а искалось по точному вхождению?
Мне надо что-то типа LIKE в MySQL.
Например надо найти

народные сказки
народная сказка
народных сказок

и так далее

я ввожу “народ сказ” и пошел поиск

MONGO такое может?



Офлайн

#4 Окт. 11, 2011 20:43:09

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

поиск вхождения в большой базе

vlad0405
o7412369815963
я для этих целей использовал mongoDB (выборка по нескольким тегам), база около 5М “предложений”, искалось в течении секунды.
а искалось по точному вхождению?
Мне надо что-то типа LIKE в MySQL.
Например надо найти

народные сказки
народная сказка
народных сказок

и так далее

я ввожу “народ сказ” и пошел поиск

MONGO такое может?
в монго можно искать регексами: народн** сказк* ( народн{2}\s+сказ.)

но для не точного вхождения лучше использовать поисковой движок, например sphinx search, этот вроде как быстро ищет в базах терабайтного размера + есть морфологический разбор.

Отредактировано (Окт. 11, 2011 20:44:45)

Офлайн

#5 Окт. 11, 2011 21:08:29

vlad0405
От:
Зарегистрирован: 2011-07-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

поиск вхождения в большой базе

Огромное спасибо за наводку!
Буду читать инфо по этим продуктам.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version