Назад | Перейти на главную страницу

Идеи для крупномасштабного полнотекстового поиска в базе данных MSSQL с высокой вставкой

У меня есть достаточно большая база данных MSSQL с таблицей, содержащей около 6 миллионов строк и около 50 тысяч вставок в день. Одна из вещей, с которой я начинаю бороться, - это полнотекстовый поиск, так как я требую, чтобы один из столбцов в таблице был полнотекстовым индексированием.

Первоначально я использовал встроенный полнотекстовый MSSQL 2008 R2, работающий на том же хосте, что и ядро ​​базы данных, но недавно я столкнулся с проблемами производительности и надежности. Я часто вижу, что ЦП привязан к 100%, и предполагаю, что это полнотекстовый индекс с заполнением. Я также вижу, что мой интерфейс возвращает неточные или неактуальные данные в результатах поиска, который использует полнотекстовый индекс.

Какие у меня варианты? Я смутно осознаю, что, возможно, можно будет запустить полнотекстовую обработку на отдельном сервере, но я не уверен, как это реализовать и хочу ли я. Мне также известны другие варианты, такие как Lucene.NET, но я не знаю, будет ли это правильный подход.

Мои требования - это просто возможность для полнотекстового поиска по этой таблице быть как можно более актуальной с учетом скорости вставки в базу данных.

Что люди предложат?

У меня есть достаточно большая база данных MSSQL с таблицей, содержащей около 6 миллионов строк и около 50 тысяч вставок в день.

А.К.А. крошечный и не занятый.

Я часто вижу, что ЦП привязан к 100%, и предполагаю, что это полнотекстовый индекс с заполнением. Я также вижу, что мой интерфейс возвращает неточные или неактуальные данные в результатах поиска, который использует полнотекстовый индекс.

Какой у вас процессор? Получите лучший. Также полнотекстовый индекс всегда будет отставать - это не в реальном времени. Даже без привязки процессора он будет отставать. Потому что это не синхроней по замыслу.

Нам нужно больше информации. На этом этапе я бы предложил приобрести сервер базы данных, который не входит в лигу использованной части ebay за 100 долларов США. Вы ничего не говорите, как это выглядит, но если вы не вставляете файлы размером 2 ГБ, ЦП не должен ЗНАЧИТЕЛЬНО отставать (и небольшая задержка - это компромисс для быстрой вставки - в качестве альтернативы используйте Lucene .NET и дождитесь завершения обработки полнотекстового индекса перед вставкой, что вас тоже не порадует, так как вставка может занять некоторое время).

В общем, современный сервер (то есть 6-12 реальных процессорных ядер) должен полностью справляться с 50 КБ вставок в день, если только они не происходят не за день, а за 10-минутный период или около того. Естественно зависит от размера (50 000 текстовых блобов по 2 ГБ - это много).