通過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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- 檔案批次查詢複製匯出,按檔名批次查詢檔案,按檔案內容批次查詢檔案
- centos vim怎麼查詢檔案內容CentOS
- 在檔案上使用 SQL 查詢的示例SQL
- 通過配置檔案(.htaccess)實現檔案上傳
- 通過Python實現對SQL Server 資料檔案大小的監控告警PythonSQLServer
- SQL Server在所有表中查詢(在整個庫搜尋內容)SQLServer
- 上傳執行sql檔案到linuxSQLLinux
- Centos7 中查詢檔案、目錄、內容CentOS
- jftp通過sftp協議上傳檔案FTP協議
- Windows 機器通過 FTP 上傳檔案WindowsFTP
- [20191221]12c查詢跟蹤檔案內容.txt
- SQL Server 查詢歷史執行的SQL語句SQLServer
- input[type=file] 獲取上傳檔案的內容
- node使用multer進行檔案上傳
- 如何進行SQL Server容災恢復WISQLServer
- 檔案內容對比工具
- Java對txt檔案內容的增刪該查操作Java
- linux 中根據檔案的大小進行檔案的查詢Linux
- 查詢SQL Server的歷史執行記錄SQLServer
- SpringMVC 通過commons-fileupload實現檔案上傳SpringMVC
- sql-server高階查詢SQLServer
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- ftp上直接修改檔案內容FTP
- java檔案相關(檔案追加內容、檔案內容清空、檔案內容讀取)Java
- AntD框架上傳檔案前校驗資訊:選擇檔案前進行內容校驗並提示框架
- vue+axio通過獲取dom元素上傳檔案Vue
- git上傳過濾檔案Git
- 檔案上傳進度提示
- python中修改檔案行內容Python
- Sql Server 的引數化查詢SQLServer
- SQL Server 跨資料庫查詢SQLServer資料庫
- sql-server不相關子查詢SQLServer
- sql-server相關子查詢SQLServer
- 關於檔案上傳下載我所知道的全部內容
- win10通過映象檔案進行升級Win10
- springCloud 微服務通過minio實現檔案上傳和檔案下載介面SpringGCCloud微服務
- PbootCMS對內容列表進行篩選boot
- 通過反射獲取上傳檔案方法引數中的檔名反射