Для хранения и поиска текстовых документов с использованием C # .NET, ASP.NET - PullRequest
0 голосов
/ 13 февраля 2010

Я хочу сохранить документы Word (.doc) в базе данных, и мне нужно обеспечить поиск по коллекции документов Word и выделить слова.

Я использую VS2005 -> ASP.NET, C # .NET, SQL Server.

Ответы [ 3 ]

2 голосов
/ 13 февраля 2010

Вы можете сохранить его в БД как BLOB (Большой двоичный объект).

Нечто подобное будет работать

string filePath = "";
string connectionString = "";
FileStream stream = 
   new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] file = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();

SqlCommand command;
SqlConnection connection = new SqlConnection(connectionString);
command = 
   new SqlCommand("INSERT INTO FileTable (File) Values(@File)", connection);
command.Parameters.Add("@File", SqlDbType.Binary, file.Length).Value = file;
connection.Open();
command.ExecuteNonQuery();
1 голос
/ 13 февраля 2010

Вы можете хранить документы в виде больших двоичных объектов, как описано выше.Затем вам нужен какой-то способ индексации содержимого, чтобы вы могли искать.

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

Это не будет особеннобыстрый или эффективный, хотя.Похоже, что полнотекстовая индексация может помочь: http://www.codeproject.com/KB/architecture/sqlfulltextindexing.aspx Очевидно, что документы Office могут быть проиндексированы.

Когда введено ключевое слово, вы можете запросить полнотекстовый индекс и найти подходящие документы.а затем откройте документы и выделите слова, используя либо основные сборочные записи Office, либо VSTO.

0 голосов
/ 18 февраля 2010

Ваш сайт публичный? Хорошим нетрадиционным решением является использование Google. Введите в Google:

сайт: www.yoursite.com тип файла: doc searchTerm

Вот пример. Обратите внимание, что ссылка «Просмотреть HTML» выделяет текст. WhiteHouse.gov Поиск OMB

Если вы хотите получить фантазию, вы можете использовать объект WebRequest , чтобы сделать запрос к Google на сервере, а затем проанализировать ответ, чтобы просто отобразить ссылки ViewHtml на вашей странице.

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