Найти текст в файлах (C #) - PullRequest
0 голосов
/ 29 апреля 2009

Наше приложение позволяет сохранять файлы любого типа в БД MS SQL в виде больших двоичных объектов / изображений. Теперь я должен предоставить функцию для поиска текста в файлах. Похож на стандартный поиск Windows "поиск в файлах".

Каков наилучший способ достижения этого? Я использовал StreamReader для чтения всего текста из файла, а затем использовал Regex для сопоставления. Просто не уверен, что это самый эффективный способ поиска по файлам.

Спасибо

Ответы [ 3 ]

3 голосов
/ 29 апреля 2009

Вы должны изучить функцию полнотекстового поиска в SQL Server.

Вот несколько хороших статей:

Полнотекстовый поиск
Полнотекстовый поиск SQL Server
Полнотекстовое индексирование SQL Server

Я думаю, вы обнаружите, что попытка получить много больших записей из базы данных, а затем искать их в памяти, неэффективна. Это область, в которой ваша СУБД превосходит другие и, если она настроена правильно, может значительно упростить вашу жизнь.

0 голосов
/ 29 апреля 2009

По моему мнению, поиск должен выполняться сервером sql, оптимизированным для таких вещей, как

0 голосов
/ 29 апреля 2009

Вы, вероятно, сэкономите много времени, если будете использовать полнотекстовый поиск на сервере sql? Это позволит вам запрашивать файлы, а также обрабатывать некоторые очень сложные запросы. Он может искать внутри BLOB-объектов, используя iFilters (например, на первой странице Microsoft)

Это хороший учебник по основам http://aspalliance.com/1512_understanding_full_text_search_in_sql_server_2005.

Делая это таким образом, вы можете использовать работу, которую MS выполняла в полнотекстовом поиске; и получайте выгоду от их интерфейсов, если ваши типы файлов не поддерживаются (большинство форматов документов комментариев поддерживаются напрямую или их производитель doc, docx, xls, pdf и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...