Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
гость_20_11_2012
Guest
Добрый день! Нужен совет. Есть такая задача - создать прикладную систему с полнотекстовым поиском по документам на русском и английском языках. Система будет состоять из нескольких частей:
1. Модуль пакетной заливки документов в хранилище.
2. Собственно хранилище, способное хранить миллионы документов с перспективой роста на порядок. В хранилище будут документы, а к каждому документу привязаны атрибуты. Перечень атрибутов известен. Значений у атрибутов ноль, один или несколько. В общем случае значения атрибутов - не только текст, а есть даты и численные значения.
3. Модуль поиска и предобработки. Т.е. программист напишет модуль, который запросит из хранилища документы по тексту и атрибутам, затем проведет обработку этих данных и покажет это пользователю. Соответственно нужна технология быстрого полнотекстового поиска в хранилище и программный интерфейс доступа к ней. Желательна поддержка морфологии для русского и английского языков. Время получения документов (или хотя бы их номеров) из хранилища по запросу для одного пользователя не должно превышать 2 секунд. Кол-во одновременных пользователей - до 10. Реально запросы будут накладываться друг на друга редко.
Бюджет на железо 300 т.руб. (сервер, диски)

Соответственно, какие видятся решения:
1. - собственный модуль, использующий API-хранилища для сохранения данных.
2. - практически любая СУБД: MS SQL, MySQL, Firebird, etc.
3. - Технология поиска - Sphynx Search через ODBC.
В данном варианте не понятно как быть с поиском по атрибутам, т.к. в этом случае он будет средствами SQL. Как их со сфинксом подружить в одном запросе?
20 ноя 12, 12:25    [13499410]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
гость_20_11_2012,
Вы начали с конца. Индексы (разные по сути) будут поддерживаться в обеих системах?
20 ноя 12, 12:29    [13499437]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
гость_20_11_2012
Guest
Бредятина
Индексы (разные по сути) будут поддерживаться в обеих системах?

Вы имеете индекс сфинкса и СУБД? Пока не представляю как их использовать совместно.
20 ноя 12, 12:34    [13499460]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
гость_20_11_2012
Бредятина
Индексы (разные по сути) будут поддерживаться в обеих системах?

Вы имеете индекс сфинкса и СУБД? Пока не представляю как их использовать совместно.

То есть, ответ на мой вопрос: "да".
Теперь, представьте конкретные индексы в примере, когда у Вас одна таблица с двумя полями:
1) В системе, которую Вы называете СУБД: отдельный индекс по полю "Фамилия", отдельный индекс по полю "Имя".
2) В дополнительной системе, без которой первая система не в состоянии решить Вашу задачу: индекс по записи, которая получается в результате слияния полей первой системы в одно "поле".
Что означает, конкретно, "совместное использование" в запросе?
20 ноя 12, 12:46    [13499516]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
гость_20_11_2012
Guest
Бредятина, кажется понял.
Смотрите, есть таблица с текстовым полем, полем типа дата, полем типа строка (автор, ссылка на главную таблицу с авторами). Текстовое поле индексируется полнотекстовым движком, а поле даты - средствами СУБД.
Пользователь хочет выбрать все документы, содержащие фразу "останкинские сосиски" или "отменные окорочка", созданные с 10 по 20 февраля 2009 года и при всем этом загруженные именно автором Ивановым. Получается, что СУБД формирует одно подмножество записей, а сфинкс - другое. Эти множества надо пересечь. Есть способ сделать это средствами СУБД или сфинкса?
20 ноя 12, 13:04    [13499627]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3148
Блог
гость_20_11_2012
Текстовое поле индексируется полнотекстовым движком, а поле даты - средствами СУБД.
Многие СУБД имеют встроенный полнотекстовый поиск для русского и соответственно английского языков. Тогда никаких проблем нет в одном запросе использовать поиск по всем полям.
20 ноя 12, 13:17    [13499781]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
гость_20_11_2012
Guest
servit
гость_20_11_2012
Текстовое поле индексируется полнотекстовым движком, а поле даты - средствами СУБД.
Многие СУБД имеют встроенный полнотекстовый поиск для русского и соответственно английского языков. Тогда никаких проблем нет в одном запросе использовать поиск по всем полям.

А какую СУБД посоветуете? Я как-то пользовался системой на MS SQL 2008 и впечатления были не очень: тормознуто и поиск часто содержал лишнее. Возможно, та система была так написана. Искал по русским текстам.
20 ноя 12, 13:22    [13499818]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
гость_20_11_2012
Бредятина, кажется понял.
Смотрите, есть таблица с текстовым полем, полем типа дата, полем типа строка (автор, ссылка на главную таблицу с авторами). Текстовое поле индексируется полнотекстовым движком,

Не совсем так. Все поля (или указанные в настройке) рассматриваются этой другой системой, как одно "поле" (поле с датой, в том числе). Это важный нюанс. У Вас "Иванов" может быть в поле "Фамилия автора" и в тексте рассказа.
гость_20_11_2012
а поле даты - средствами СУБД.

Тоже не совсем так. Системы,которые Вы называете СУБД, поддерживают то, что Вы называете "полнотекстовым индексом".
гость_20_11_2012
Пользователь хочет выбрать все документы, содержащие фразу "останкинские сосиски" или "отменные окорочка", созданные с 10 по 20 февраля 2009 года и при всем этом загруженные именно автором Ивановым. Получается, что СУБД формирует одно подмножество записей, а сфинкс - другое.

Не совсем точно. Индексы по одним и тем же записям поддерживаются в обеих системах.
гость_20_11_2012
Эти множества надо пересечь. Есть способ сделать это средствами СУБД или сфинкса?

Может ли другая система различить в каком поле содержатся значения "Иванов" или "12.02.2009"? Вы разберитесь по-точнее:) Извините, что не отвечаю точно на Ваш вопрос. Я, как и Вы, не разбираюсь в БД:)
Можно гипотетически предположить (если придется использовать индексы двух систем), что некая интерактивная программа позволяет сформировать запрос, предусматривая в нем две части: "Содержит" (безотносительно полей в БД) и условия на поля в БД. И при исполнении:
1) отбираются записи, удовлетворяющие первой части на основе индекса дополнительной системы (например: 1,7,8,9,10);
2) отбираются записи, удовлетворяющие второй части на основе индексов первой системы (например: 7,9,12,34);
3) результаты объединяются (получим: 7,9).
20 ноя 12, 13:31    [13499919]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
гость_20_11_2012
servit
пропущено...
Многие СУБД имеют встроенный полнотекстовый поиск для русского и соответственно английского языков. Тогда никаких проблем нет в одном запросе использовать поиск по всем полям.

А какую СУБД посоветуете? Я как-то пользовался системой на MS SQL 2008 и впечатления были не очень: тормознуто и поиск часто содержал лишнее. Возможно, та система была так написана. Искал по русским текстам.

Потому что, технология "полнотекстового поиска" та же: слияние полей в одно поле":)
20 ноя 12, 13:33    [13499931]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3148
Блог
гость_20_11_2012
А какую СУБД посоветуете?
Только ту, которую знаю и использую.
20 ноя 12, 13:38    [13499988]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
гость_20_11_2012
Guest
А вообще кто-нибудь на клиенте делал пересечение двух множеств? Берем два множества идентификаторов, делаем из бОльшего хэш-таблицу, идем итеративно по меньшему множеству, сверяясь с хэш-таблицей на наличие элемента. В итоге получаем результирующее множество документов. Запрашиваем их по череди. Как-то так. Хотя не есть гуд. Зато практически не важно какую СУБД использовать.
20 ноя 12, 14:17    [13500402]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
гость_20_11_2012
А вообще кто-нибудь на клиенте делал пересечение двух множеств? Берем два множества идентификаторов, делаем из бОльшего хэш-таблицу, идем итеративно по меньшему множеству, сверяясь с хэш-таблицей на наличие элемента. В итоге получаем результирующее множество документов. Запрашиваем их по череди. Как-то так. Хотя не есть гуд. Зато практически не важно какую СУБД использовать.
вам тогда наверное лучше в другой форум, тут вроде мазохистов не много
20 ноя 12, 14:40    [13500637]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
DPH3
Member

Откуда:
Сообщений: 456
гость_20_11_2012,

А зачем своя БД, что в ней делать?
Нужен свой веб-сервер (или веб-сервис, зависит от того, как показывать пользователю) и собственно полнотекстовый движок.

В настройке Apache SOLR попроще, нежели Sphynx, к тому же, если веб-сервер делать на java, то можно все в один tomcat поместить.

Особого смысла в интеграции реляционной СУБД и полнотекстовой СУБД не вижу.
20 ноя 12, 17:01    [13502118]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
гость_20_11_2012,

Погляди на solar. (lucene)
Очень классный. Субд можно при этом брать любую.
Не знаю только, как там со словоформами для русского, для англ есть.
20 ноя 12, 19:55    [13503352]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
Бредятина
Member [заблокирован]

Откуда: Москва
Сообщений: 2497
гость_20_11_2012,
Как видите настоящим специалистам наплевать на существо вопроса:) Главное что-нибудь взять. И как-нибудь применить.
И это правильно, наверное:)
20 ноя 12, 21:39    [13503662]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
NanoLab
Member [заблокирован]

Откуда: Догнать и перегнать Америку
Сообщений: 398
13484355
20 ноя 12, 21:59    [13503724]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
полнотекстовый
Guest
гость_20_11_2012
А вообще кто-нибудь на клиенте делал пересечение двух множеств? Берем два множества идентификаторов, делаем из бОльшего хэш-таблицу, идем итеративно по меньшему множеству, сверяясь с хэш-таблицей на наличие элемента. В итоге получаем результирующее множество документов. Запрашиваем их по череди. Как-то так. Хотя не есть гуд. Зато практически не важно какую СУБД использовать.

HASH JOIN чтоль?
Это Oracle, DB2, MSSQL и PostgreSQL. И полнотекстовый там вроде есть.
21 ноя 12, 00:20    [13504243]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472
SHINX
23 ноя 12, 17:38    [13521072]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472
SPHIX, сорри.
http://sphinxsearch.com/
23 ноя 12, 17:39    [13521078]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках  [new]
roden
Member

Откуда:
Сообщений: 741
Во всех уважающих себя СУБД есть полнотекстовая система поиска, у некоторых она получше, у некоторых похуже, но большинство потребностей закрывает.
Если нужна отдельная от конкретных СУБД система поиска ... поисковых машин немало.
В принципе у нас в фирме есть решение с семантическим поиском, но это несколько другая история. Если интересно - в ЛС.
16 янв 13, 14:07    [13778155]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить