簡體   English   中英

如何在sql server 2008中保存PDF,Docx,xl​​s等文檔

[英]How to save documents like PDF,Docx,xls in sql server 2008

我開發了一個Web應用程序,允許用戶上傳圖像和文檔等文件。 這個文件分為兩部分:

  1. 二進制文件
  2. 文件檔案

我想允許用戶搜索上傳的文檔。 特別是使用全文搜索。 我應該為這兩種文件類型使用哪些數據類型?

您可以將數據存儲為二進制文件並使用全文搜索來解釋二進制數據並提取文本信息:.doc,.txt,.xls,.ppt,.htm。 提取的文本已編制索引並可用於查詢(請確保使用CONTAINS關鍵字)。 毋庸置疑,必須啟用全文搜索。不確定添加全文索引會如何影響您的系統 - 即其大小。 您還需要查看執行計划以確保在查詢時使用索引。

有關更多信息,請查看:

http://technet.microsoft.com/en-us/library/ms142499(SQL.90).aspx

優點:在數據庫中存儲數據的主要優點是它使數據“自包含”。 由於所有數據都包含在數據庫中,因此備份數據,將數據從一個數據庫服務器移動到另一個數據庫服務器,復制數據庫等等要容易得多。

您還可以啟用文件版本控制,並使負載均衡的Web場更容易。

缺點:你可以在這里閱讀: https//dba.stackexchange.com/questions/3924/sql-server-2005-large-binary-storage 但是,為了有效地搜索文件,您必須這樣做。

或者我建議的另一件事可能是將關鍵字存儲在數據庫中,然后將它們鏈接到文件共享中的文件。

這是一篇使用FileStream和數據庫討論abt的文章: http//blogs.msdn.com/b/manisblog/archive/2007/10/21/filestream-data-type-sql-server-2008.aspx

您首先需要將PDF轉換為文本。 有這類事物的庫(即:PowerGREP)。 然后我建議將PDF文件的文本存儲在數據庫中。 如果您需要進行全文搜索和邏輯,例如“在同一行”,那么您需要為每行文本存儲一條記錄。 如果您只想在文件中搜索文本,則可以更改SQL模式的結構以滿足您的需要。

對於docx文件,我會將它們轉換為RTF並在存儲在SQL中時以這種方式搜索它們。

對於圖像,Microsoft有一個名為Microsoft OneNote的程序,它執行OCR(光學字符識別),因此您可以在圖像中搜索文本。 使用什么工具並不重要,只是它支持OCR。

基本上,如果您沒有辦法直接讀取二進制文件,那么您需要將其轉換為帶有某些庫的文本,然后擔心進行搜索。

可以為使用以下任何數據類型的列創建全文索引 - CHAR,NCHAR,VARCHAR,NVARCHAR,TEXT,NTEXT,VARBINARY,VARBINARY(MAX),IMAGE和XML。

此外,要使用全文搜索,您必須為要對其運行全文搜索查詢的表創建全文索引。 對於特定的SQL Server表或索引視圖,您最多可以創建一個全文索引。

這是關於它的兩篇文章:

SQL SERVER - 2008 - 創建全文目錄和全文搜索

在SQL Server 2008中使用全文搜索

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM