我想在数据库中存储单词文档(.doc),我需要提供对Word文档集的搜索,并突出显示单词。
我正在使用VS2005 - > ASP.NET,C#.NET,SQL Server。
答案 0 :(得分:2)
您可以将其作为BLOB (Binary Large OBject).
存储在数据库中类似的东西会起作用
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 :(得分:1)
您可以将文档存储为BLOB,如上所述。然后,您需要一些索引内容的方法,以便您可以搜索。
您可以粗略地将Word文档的内容解压缩为文本,将其与文档一起存储,然后使用关键字查询此新列。
但这并不是特别快或有效。看起来好像全文索引可以解决这个问题:http://www.codeproject.com/KB/architecture/sqlfulltextindexing.aspx 显然可以将Office文档编入索引。
输入关键字后,您可以查询全文索引,找到匹配的文档,然后打开文档并使用Office Primary Interop assesmbiles或VSTO突出显示这些文字。
答案 2 :(得分:0)
您的网站是否公开?一个好的非常规解决方案是使用谷歌。输入google:
网站:www.yoursite.com文件类型:doc searchTerm
这是一个例子。请注意,“查看HTML”链接会突出显示文本。 WhiteHouse.gov OMB Search
如果您想获得幻想,可以使用WebRequest对象在服务器上向Google发出请求,然后解析响应,只显示您网页上的ViewHtml链接。