2010-07-21 3 views
1

В настоящее время у нас есть приложение, которое должно выполнять очень быстрый поиск на ~ 2 мельничных записях.Масштабируемый freetext и параметрический поиск (C#)

Для поиска требуется как большое поле свободного текста, так и целое число/десятичные поля между различными диапазонами, а также различные функции/вычисления & сортировка.

В настоящее время мы обрабатываем это с помощью большой базы данных MSSQL, используя встроенный механизм freetext и некоторую репликацию, чтобы переместить загрузку из транзакционных таблиц.

Однако, как вы, возможно, догадались, это решение не является наиболее масштабируемым.

Я написал небольшое хранилище документов на базе Lucene и, как правило, впечатлен результатами, при этом поиск текста не занимает много времени больше, чем 1/2 секунды (на 100 тыс. Записей).

Жесткая часть - это параметрический поиск. Я знаю, что Lucene выполняет базовое сопоставление диапазона, однако я чувствую, что нам нужно что-то более мощное.

Я сделал небольшую тестовую базу данных, используя db4o - у которой есть мощные возможности запросов, однако эти запросы довольно медленны - занимает более 15 секунд на только 100 тыс. Записей - в то время как SQL занимает около 1,5 секунд для параметрического поиска freetext &.

Кроме того, наша база данных должна иметь разрешение обновления менее 10 минут, при этом приблизительно 15% записей меняются ежедневно. Наш SQL-сервер работает с этим сейчас, но начинает скрипеть.

Любое руководство по подходящим технологиям & будет оценено по достоинству.

Приветствия, Dave

+0

Не могли бы вы пояснить, что вы подразумеваете под «нужно что-то более мощное». о параметрах Луценко? Он достаточно мощный и должен удовлетворять большинству запросов. – Mikos

+1

db4o, занимающий 15 секунд на объектах 100k, не похож на нашу базу данных. Может быть, вы хотите опубликовать свой код на форумах db4o? http://developer.db4o.com/Forums.aspx Я уверен, что что-то можно сделать для скорости. –

+0

Почему бы не использовать полнотекстовый поиск SQL Server? –

ответ

0

LinkedIn написал дополнение к Lucene называется bobo расширить свои facted поисковые запросы, которые могут быть стоит посмотреть в. Но я думаю, что бобо действительно нужно, только если у вас есть абсолютно массивный индекс - должно быть что-то действительно странное, если поиск по документам на 100 тыс. Занимает так много времени.