首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 整合 Index Server 全文檢索應用 (3/3):透過 OPENQUERY 查詢

     編輯:關於SqlServer

OPENQUERY 查詢 Index Server 語法

SELECT *
FROM OPENQUERY(linked_server, 'query_string');
  • linked_server:預先建立的連結伺服器名稱 (指向 Index Server)。
  • query_string:傳遞給 Index Server 的 SQL 語法,以單引號包裹。
  • 回傳虛擬資料表,可進一步 JOIN/WHERE 篩選。

範例:搜尋包含 "SQL" 字詞的文件

SELECT *
FROM OPENQUERY(FileSystem,
    'SELECT Directory, FileName, DocAuthor, Size, Create
     FROM SCOPE()
     WHERE CONTAINS(Contents, ''SQL'')');

Index Server FROM 子句特殊語法

FROM [Catalog_Name..] { SCOPE( ['Scope_Arguments'] ) }
  • Catalog_Name:索引目錄名,連結伺服器已指定時可省略。
  • SCOPE():指定搜尋範圍。
    • DEEP TRAVERSAL OF 'path':遞迴搜尋子目錄 (預設)。
    • SHALLOW TRAVERSAL OF 'path':僅搜尋最上層目錄。
  • physical_path 實體路徑,virtual_directory 虛擬目錄。

常用文件屬性欄位 (可用於 SELECT/WHERE/ORDER BY)

屬性型別說明可 ORDER BY可 SELECT
Accessdatetime最後存取時間是是
Characterizationntext文件摘要否是
Createdatetime建立時間是是
Directorynvarchar實體路徑 (不含檔名)是是
DocAuthornvarchar作者是是
DocTitlenvarchar標題是是
FileNamenvarchar檔名是是
HitCountint字詞命中次數是是
Pathnvarchar完整實體路徑是是
Rankint相關性分數 0-1000是是
Sizedecimal(19,0)檔案大小 (位元組)是是
Writedatetime最後寫入時間是是

應用建議

  • 建立連結伺服器時選擇 Microsoft OLE DB Provider for Indexing Service。
  • 查詢效能依賴 Index Server 索引品質,定期重建索引目錄。
  • 大量文件搜尋建議搭配 Rank 排序,優先呈現最相關結果。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved