SQL Server全文檢索索引查詢淺析
來源:互聯網
上載者:User
方案概要:
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編錄。
MSSQL對索引伺服器的調用
1. 通過sql語句查詢串連伺服器的內容
SELECT Q.*
FROM OpenQuery(dcs, --串連伺服器名字
'SELECT FileName, Size, DocAuthor, path --在串連伺服器裡的sql語句
FROM SCOPE()
WHERE CONTAINS(''番號 and abc'') '
) AS Q
2. 因為SQL語句不支援動態輸入的字串,因此查詢字串只好在C#代碼裡進行拼接
s.p.
實不用將檔案儲存到資料庫外面也能實現在資料庫裡實現全文檢索搜尋。具體方案是在SQL Server 2000裡安全全文檢索搜尋功能,用image欄位隱藏檔內容,並新增一個欄位存放檔案類型,然後在通過企業管理器建立全文索引項目的時候將這兩個欄位匹配就可以。不過從資料庫的/率以及今後Database Backup和恢複的效率上來看,將檔案放在資料庫的設計不是太好。