|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
Добрый день! Нужен совет. Есть такая задача - создать прикладную систему с полнотекстовым поиском по документам на русском и английском языках. Система будет состоять из нескольких частей: 1. Модуль пакетной заливки документов в хранилище. 2. Собственно хранилище, способное хранить миллионы документов с перспективой роста на порядок. В хранилище будут документы, а к каждому документу привязаны атрибуты. Перечень атрибутов известен. Значений у атрибутов ноль, один или несколько. В общем случае значения атрибутов - не только текст, а есть даты и численные значения. 3. Модуль поиска и предобработки. Т.е. программист напишет модуль, который запросит из хранилища документы по тексту и атрибутам, затем проведет обработку этих данных и покажет это пользователю. Соответственно нужна технология быстрого полнотекстового поиска в хранилище и программный интерфейс доступа к ней. Желательна поддержка морфологии для русского и английского языков. Время получения документов (или хотя бы их номеров) из хранилища по запросу для одного пользователя не должно превышать 2 секунд. Кол-во одновременных пользователей - до 10. Реально запросы будут накладываться друг на друга редко. Бюджет на железо 300 т.руб. (сервер, диски) Соответственно, какие видятся решения: 1. - собственный модуль, использующий API-хранилища для сохранения данных. 2. - практически любая СУБД: MS SQL, MySQL, Firebird, etc. 3. - Технология поиска - Sphynx Search через ODBC. В данном варианте не понятно как быть с поиском по атрибутам, т.к. в этом случае он будет средствами SQL. Как их со сфинксом подружить в одном запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 12:25 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012, Вы начали с конца. Индексы (разные по сути) будут поддерживаться в обеих системах? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 12:29 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
БредятинаИндексы (разные по сути) будут поддерживаться в обеих системах? Вы имеете индекс сфинкса и СУБД? Пока не представляю как их использовать совместно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 12:34 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012БредятинаИндексы (разные по сути) будут поддерживаться в обеих системах? Вы имеете индекс сфинкса и СУБД? Пока не представляю как их использовать совместно. То есть, ответ на мой вопрос: "да". Теперь, представьте конкретные индексы в примере, когда у Вас одна таблица с двумя полями: 1) В системе, которую Вы называете СУБД: отдельный индекс по полю "Фамилия", отдельный индекс по полю "Имя". 2) В дополнительной системе, без которой первая система не в состоянии решить Вашу задачу: индекс по записи, которая получается в результате слияния полей первой системы в одно "поле". Что означает, конкретно, "совместное использование" в запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 12:46 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
Бредятина, кажется понял. Смотрите, есть таблица с текстовым полем, полем типа дата, полем типа строка (автор, ссылка на главную таблицу с авторами). Текстовое поле индексируется полнотекстовым движком, а поле даты - средствами СУБД. Пользователь хочет выбрать все документы, содержащие фразу "останкинские сосиски" или "отменные окорочка", созданные с 10 по 20 февраля 2009 года и при всем этом загруженные именно автором Ивановым. Получается, что СУБД формирует одно подмножество записей, а сфинкс - другое. Эти множества надо пересечь. Есть способ сделать это средствами СУБД или сфинкса? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 13:04 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012Текстовое поле индексируется полнотекстовым движком, а поле даты - средствами СУБД.Многие СУБД имеют встроенный полнотекстовый поиск для русского и соответственно английского языков. Тогда никаких проблем нет в одном запросе использовать поиск по всем полям. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 13:17 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
servitгость_20_11_2012Текстовое поле индексируется полнотекстовым движком, а поле даты - средствами СУБД.Многие СУБД имеют встроенный полнотекстовый поиск для русского и соответственно английского языков. Тогда никаких проблем нет в одном запросе использовать поиск по всем полям. А какую СУБД посоветуете? Я как-то пользовался системой на MS SQL 2008 и впечатления были не очень: тормознуто и поиск часто содержал лишнее. Возможно, та система была так написана. Искал по русским текстам. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 13:22 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_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.11.2012, 13:31 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012servitпропущено... Многие СУБД имеют встроенный полнотекстовый поиск для русского и соответственно английского языков. Тогда никаких проблем нет в одном запросе использовать поиск по всем полям. А какую СУБД посоветуете? Я как-то пользовался системой на MS SQL 2008 и впечатления были не очень: тормознуто и поиск часто содержал лишнее. Возможно, та система была так написана. Искал по русским текстам. Потому что, технология "полнотекстового поиска" та же: слияние полей в одно поле":) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 13:33 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012А какую СУБД посоветуете?Только ту, которую знаю и использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 13:38 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
А вообще кто-нибудь на клиенте делал пересечение двух множеств? Берем два множества идентификаторов, делаем из бОльшего хэш-таблицу, идем итеративно по меньшему множеству, сверяясь с хэш-таблицей на наличие элемента. В итоге получаем результирующее множество документов. Запрашиваем их по череди. Как-то так. Хотя не есть гуд. Зато практически не важно какую СУБД использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 14:17 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012А вообще кто-нибудь на клиенте делал пересечение двух множеств? Берем два множества идентификаторов, делаем из бОльшего хэш-таблицу, идем итеративно по меньшему множеству, сверяясь с хэш-таблицей на наличие элемента. В итоге получаем результирующее множество документов. Запрашиваем их по череди. Как-то так. Хотя не есть гуд. Зато практически не важно какую СУБД использовать.вам тогда наверное лучше в другой форум, тут вроде мазохистов не много ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 14:40 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012, А зачем своя БД, что в ней делать? Нужен свой веб-сервер (или веб-сервис, зависит от того, как показывать пользователю) и собственно полнотекстовый движок. В настройке Apache SOLR попроще, нежели Sphynx, к тому же, если веб-сервер делать на java, то можно все в один tomcat поместить. Особого смысла в интеграции реляционной СУБД и полнотекстовой СУБД не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 17:01 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012, Погляди на solar. (lucene) Очень классный. Субд можно при этом брать любую. Не знаю только, как там со словоформами для русского, для англ есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 19:55 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012, Как видите настоящим специалистам наплевать на существо вопроса:) Главное что-нибудь взять. И как-нибудь применить. И это правильно, наверное:) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 21:39 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 21:59 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
гость_20_11_2012А вообще кто-нибудь на клиенте делал пересечение двух множеств? Берем два множества идентификаторов, делаем из бОльшего хэш-таблицу, идем итеративно по меньшему множеству, сверяясь с хэш-таблицей на наличие элемента. В итоге получаем результирующее множество документов. Запрашиваем их по череди. Как-то так. Хотя не есть гуд. Зато практически не важно какую СУБД использовать. HASH JOIN чтоль? Это Oracle, DB2, MSSQL и PostgreSQL. И полнотекстовый там вроде есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 00:20 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
SHINX ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2012, 17:38 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
SPHIX, сорри. http://sphinxsearch.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2012, 17:39 |
|
Посоветуйте мощную систему с полнотекстовым поиском на русском и английском языках
|
|||
---|---|---|---|
#18+
Во всех уважающих себя СУБД есть полнотекстовая система поиска, у некоторых она получше, у некоторых похуже, но большинство потребностей закрывает. Если нужна отдельная от конкретных СУБД система поиска ... поисковых машин немало. В принципе у нас в фирме есть решение с семантическим поиском, но это несколько другая история. Если интересно - в ЛС. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2013, 14:07 |
|
|
start [/forum/topic.php?fid=35&fpage=9&tid=1552485]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
99ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 190ms |
0 / 0 |