共用方式為


CONTAINS語義述詞

CONTAINSSEMANTIC 述詞是 WHERE 子句的一部分,並支援索引內容內的語意搜尋。 該子句可用於根據語義相似性搜尋文字或圖像,而不僅僅是精確的關鍵字匹配。

以下是 CONTAINSSEMANTIC 述詞的基本語法:

...CONTAINSSEMANTIC (ContentType, [<fulltext_column or #list>,] search_text_phrase, LCID) ...

ContentType 參數會指定搜尋是文字還是影像。 允許的值為 “text” 或 “image”。

fulltext_column參考是選用的。 有了它,您可以將搜尋限制在單一欄位或欄位群組,並對其進行 CONTAINSSEMANTIC 謂詞測試。 當 fulltext_column 指定為 “*” 時,會搜尋所有索引文字屬性。 雖然資料行不需要是文字屬性,但如果資料行是其他資料類型,結果可能毫無意義。 直欄名稱可以是一般識別符或已分隔識別符,並且您必須以逗號將其與條件分隔。 如果未指定 fulltext_column,則會使用 System.Search.Contents 資料行,也就是文件的主體內容。

述詞的 LCID 部分會指定搜尋地區設定。 這會指示搜尋引擎針對搜尋查詢使用適當的斷詞符號和屈折形式。 若要指定地區設定,請提供 Windows 標準語言代碼識別碼 (LCID) 。 例如,1033 是美國英語的 LCID。 將 LCID 放在 CONTAINSSEMANTIC 子句括號內的最後一個項目。 如需搜尋和語言的重要資訊,請參閱 使用當地語系化搜尋

傳統的索引和搜尋繼續順暢地適用於 Windows 上所有支援的語言套件。 不過,改進的搜尋僅針對以下語言進行了最佳化:

語言 LCID 值
英文 (美國) 1033
繁體中文 (CA) 4105
英文(AU) 3081
英語(GB) 2057
法語 (FR) 1036
法語 (CA) 3084
德語 (DE) 1031
西班牙語 (ES) 3082
西班牙語 (MX) 2058
日語 (JP) 1041
中文(簡體) 2052

備註

預設搜尋地區設定是系統預設地區設定。

如需 LCID 值的詳細資訊,請參閱 Windows 語言代碼識別碼 (LCID) 參考

search_text_phrase部分若為單字,必須以單引號括住,若為片語,則必須以雙引號括住。內容搜尋字詞由一個或多個組成,並使用邏輯運算子 ANDOR 進行組合。 您可以在 AND 運算子之後使用選用的一元運算子 NOT 來否定內容搜尋字詞的邏輯值。

備註

NOT 運算子只能出現在 AND 之後。 如果只有一個相符條件,或在 OR 運算子之後,則無法使用 NOT 運算子。

您可以使用括號來分組和巢嵌內容搜尋字詞。 下表說明邏輯運算子的優先順序。

順序 (優先順序) 邏輯運算子
第一(最高)
Second
第三(最低) OR

相同類型的邏輯運算子是關聯的,並且沒有指定的計算順序。 例如,(A AND B) AND (C AND D) 可以計算為 (B AND C) AND (A AND D),而不改變邏輯結果。

Example

下列範例顯示使用 CONTAINSSEMANTIC 子句查詢與片語「海灘上的家庭」相關的檔和影像。

SELECT * FROM SystemIndex  
WHERE CONTAINSSEMANTIC('text', *, 'family on a beach', 1033)  
OR CONTAINSSEMANTIC('image', *, 'family on a beach', 1033)  
RANK BY MERGE(merge_operation)

Reference

WHERE 子句

概念性

全文檢索謂詞

非全文述詞