[鐵人賽][Denali 新特性探險16]Semantic Search(1)

[鐵人賽][Denali 新特性探險16]Semantic Search(1)

概述

Semantic Search 是基於全文檢索功能而建立(中文翻譯:語意擷取),

包含在相關非結構文件內容中自動擷取及統計文字詞組(字與字之間的關聯性)。

當你建立全文檢索索引並加入 Statistical_Semantics 關鍵字時,不僅可以有效搜尋關鍵字,

也可以在文件中搜尋 Key phrase (關鍵詞組)或其他相似文件內容,

可說大大提高全文檢索可用性(不單單只有關鍵字而已)。

Note: 全文檢索索引是一種特殊類型的 Token 式功能索引,而不是根據特定資料列中所儲存的值來建構 B-tree(平衡樹)。

 

新函數:

Denali 針對Semantic Search 提供三個新函數。

1. semantickeyphrasetable (Transact-SQL)

在資料表或文件中搜尋你指定的Key phrase(關鍵詞組)。

2. semanticsimilaritytable (Transact-SQL)

依你所指定的文件來找出相似文件。

3. semanticsimilaritydetailstable (Transact-SQL)

兩個指定文件中顯示common Key phrase(共同的關鍵詞組)。

 

 

安裝和註冊Semantics Search

要想使用Semantic Search 必須先安裝 Semantics DB。

Note:Semantics DB包含了Semantics Search所需各種語言語意的統計模型。

 

1.執行 SEMANTICLANGUAGEDATABASE.MSI(你可以在 Setup 目錄下找到該檔案)

image

image

該路徑下會建立 Semantics DB Data and Log File(如下圖)。

image

image

安裝成功。

 

2.附加Semantics資料庫(Attach Semantics DB )

exec sp_attach_db @dbname='semanticsDB',
@filename1=N'C:\Program Files\Microsoft Semantic Language Database\semanticsDB.mdf',
@filename2=N'C:\Program Files\Microsoft Semantic Language Database\semanticsdb_log.ldf'

image

附加成功。

 

確認是否安裝Semantics Search

select SERVERPROPERTY('IsFullTextInstalled');

image

1:已安裝。

0:未安裝。

 

3.註冊 Semantics Search

我們可以透過sys.fulltext_semantic_language_statistics_database 查看註冊的時間和版本…等資訊。

image

目前該SQL Instance並未註冊 Semantic Search。

 

執行 sp_fulltext_semantic_register_language_statistics_db註冊

--註冊 semantic search
exec sp_fulltext_semantic_register_language_statistics_db @dbname = N'semanticsDB';

image

註冊成功。

 

確認Semantic Search是否支援繁體中文語系(可透過 sys.fulltext_semantic_languages 確認)

select * 
from sys.fulltext_semantic_languages

image

有支援繁體中文。

 

參考 Semantic Search