通過SQL Server對上傳檔案內容進行查詢
方案描述:
1.改變檔案儲存時的檔名
2.配置索引伺服器,並將索引伺服器與MS SQL Server關聯。
3.修改SQL語句,將進行全文查詢語句的內容加入查詢條件中
檔案的儲存方式:
為了方便儲存以及方便索引,我們將上傳的檔案儲存到一個目錄裡面,為了保證上傳的檔名不重複,採用GUID作為檔名,並且通過這個GUID於資料庫記錄相關聯。同時,檔案的字尾還保持原始檔案的字尾,讓索引服務能夠識別該文件。
配置索引服務
進入計算機管理(Computer Management)程式(右鍵”我的電腦”->”管理”),並找到索引服務(Index Service)
配置索引服務的功能
(1)右鍵選擇索引服務彈出一個選單
(2)選擇New->Catalog(新建一個編錄)
設定新增加的編錄
(1)輸入編錄的名字(這個名字需要與資料庫進行關聯,要注意命名,這裡假設DCSII
(2)點Browse進入選擇索引服務執行目錄窗體
(3)選擇前面建立的索引執行目錄(任意地方)
(4)點確定完成本次操作
在編錄建立號以後,需要給編錄增加目錄
(1)右鍵選擇剛剛建立的編錄
(2)選擇New->Directory(新建目錄)
新建索引目錄
(1)點選Browse進入目錄選擇頁面
(2)選擇要進行全文檢索檔案的目錄
(3)確定完成本次操作
完成建立後啟動索引服務
(1)啟動索引服務
(2)索引服務啟動成功後索引編錄的資訊,可以看到編錄資訊就表示服務已經啟動成功。
將索引服務和SQL資料庫關聯:
在SQL 查詢分析器(SQL Query Analyer)裡執行下面的儲存過程
EXEC sp_addlinkedserver Dcs, -- 連線伺服器的名字,到後面查詢的時候要用到
'Index Server',
'MSIDXS',
'DCSII' -- 索引服務裡新建的編錄名字
索引服務的效能調整方法1
(1)右鍵選擇索引服務
(2)選擇 All Tasks-> Tune Perrformance
(3)選擇使用者自定義
(4)點選Customize進入效能調整窗體
(5)將Index和Querying的屬性移動到最右邊
(6)點確定完成操作
效能調整方法2
如果伺服器不需要對整個系統的檔案進行索引,可以停止或者刪除System編錄。
MS SQL對索引伺服器的呼叫
1.通過sql語句查詢連線伺服器的內容
SELECT Q.*
FROM OpenQuery(dcs, --連線伺服器名字
'SELECT FileName, Size, DocAuthor, path --在連線伺服器裡的sql語句
FROM SCOPE()
WHERE CONTAINS(''番號 and abc'') '
) AS Q
2.因為SQL語句不支援動態輸入的字串,因此查詢字串只好在C#程式碼裡來進行拼接
其它解決方法:
在SQL Server 2000資料庫裡按全文搜尋功能,用image欄位儲存檔案內容,並新增一個欄位存放檔案型別,然後在通過企業管理器新建全文索引項的時候將這兩個欄位匹配就可以。不過從資料庫的/率以及今後資料庫備份和恢復的效率上來看,將檔案放在資料庫的設計略顯不足。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-567498/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過SQL查詢UDUMP檔案SQL
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- linux 下 對檔案內容的查詢Linux
- 檔案內容查詢命令(轉)
- 通過SQL SERVER遠端上傳檔案的實現SQLServer
- 反射-通過反射執行配置檔案內容反射
- Linux檔案內容查詢命令Linux
- 檔案上傳速度查詢方法
- centos vim怎麼查詢檔案內容CentOS
- Linux檔案內容查詢命令(轉)Linux
- Qt通過Http上傳檔案(路過)QTHTTP
- linux下的find檔案查詢命令與grep檔案內容查詢命令Linux
- Yii1.1中通過Sql查詢進行的分頁操作SQL
- PHP如何通過CURL上傳檔案PHP
- 通過配置檔案(.htaccess)實現檔案上傳
- java通過檔案頭內容判斷檔案型別Java型別
- 在檔案上使用 SQL 查詢的示例SQL
- Centos7 中查詢檔案、目錄、內容CentOS
- Linux 檔案、內容查詢(遞迴) ,grep ,findLinux遞迴
- jftp通過sftp協議上傳檔案FTP協議
- Windows 機器通過 FTP 上傳檔案WindowsFTP
- 在php中通過curl上傳檔案PHP
- php通過ftp協議上傳檔案PHPFTP協議
- 查詢當前執行的sql及相關內容SQL
- linux下使用find xargs grep查詢檔案及檔案內容Linux
- input[type=file] 獲取上傳檔案的內容
- node使用multer進行檔案上傳
- SQL Server在所有表中查詢(在整個庫搜尋內容)SQLServer
- 如何通過trn日誌檔案恢復SQL ServerSQLServer
- 如何用 grep 命令在 UNIX 中根據檔案內容查詢檔案
- 上傳執行sql檔案到linuxSQLLinux
- 檔案內容對比工具
- 通過NSInputStream讀取大檔案的指定起始內容
- 通過spid,查詢執行慢的sql指令碼SQL指令碼
- 通過SQL查詢兩張表中不匹配的行SQL
- Java對txt檔案內容的增刪該查操作Java
- 用VB和SQL Server實現檔案上傳(方案例)SQLServer
- 通過Python實現對SQL Server 資料檔案大小的監控告警PythonSQLServer