CONTAINSSEMANTIC predikátum

A CONTAINSSEMANTIC predikátum a WHERE záradék része, és támogatja az indexelt tartalom szemantikai keresését. A záradék használható arra, hogy a szemantikai hasonlóságuk alapján keressen szöveget vagy képeket, és ne csak a kulcsszavak pontos egyezéseit.

A CONTAINSSEMANTIC predikátum alapszintaxisa a következő:

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

A ContentType paraméter megadja, hogy a keresés szövegre vagy képekre irányul-e. Az engedélyezett értékek a "szöveg" vagy a "kép".

A fulltext_column hivatkozás nem kötelező. Ezzel egyetlen oszlopra vagy olyan oszlopcsoportra korlátozhatja a keresést, amelyre a CONTAINSSEMANTIC predikátumot teszteli. Ha fulltext_column "*" értékként van megadva, a rendszer az összes indexelt szövegtulajdonságban keres. Bár az oszlopnak nem kell szöveges tulajdonságnak lennie, az eredmények értelmetlenek lehetnek, ha az oszlop más adattípus. Az oszlopnév lehet normál vagy tagolt azonosító, és vesszővel kell elválasztani a feltételtől. Ha nincs megadva fulltext_column, a rendszer a System.Search.Contents oszlopot használja, amely a dokumentum törzse.

A predikátum LCID része határozza meg a keresési területi beállításokat. Ez arra utasítja a keresőmotort, hogy a keresési lekérdezéshez a megfelelő szótörési és inflexiós űrlapokat használja. A területi beállítás megadásához adja meg a Windows standard nyelvi kódazonosítóját (LCID). Az 1033 például az egyesült államokbeli-angol nyelvű LCID. Helyezze az LCID-t az utolsó elemként a CONTAINSSEMANTIC záradék zárójeleibe. A kereséssel és nyelvekkel kapcsolatos fontos információkért lásd: Honosított keresések használata.

A hagyományos indexelés és keresés továbbra is zökkenőmentesen működik a Windows összes támogatott nyelvi csomagján. A továbbfejlesztett keresés azonban csak az alábbi nyelvekre van optimalizálva:

Nyelv LCID érték
Angol (Egyesült Államok) 1033
Angol (CA) 4105
Angol (AU) 3081
Angol (GB) 2057
Francia (FR) 1036
Francia (CA) 3084
Német (DE) 1031
Spanyol (ES) 3082
Spanyol (MX) 2058
Japán (JP) 1041
Kínai (egyszerűsített) 2052

Megjegyzés:

Az alapértelmezett keresési helybeállítás megegyezik a rendszer alapértelmezett helyi beállításával.

További információ az LCID-értékekről: Windows Language Code Identifier (LCID) Reference.

A search_text_phrase résznek egyetlen idézőjelbe kell foglalnia az egyszavas vagy a kettős idézőjeleket a kifejezésekhez, és egy vagy több olyan tartalomkeresési kifejezést kell tartalmaznia, amelyet a logikai operátorok és az OR függvények kombinálnak. A nem kötelező NOT operátort az AND operátor után is használhatja a tartalomkeresési kifejezés logikai értékének tagadásához.

Megjegyzés:

A NOT operátor csak az AND után fordulhat elő. A NOT operátort nem használhatja, ha csak egy egyezési feltétel van, vagy az OR operátor után.

Zárójelek használatával csoportosíthatja és beágyazhatja a tartalomkeresési kifejezéseket. Az alábbi táblázat a logikai operátorok elsőbbségi sorrendjét ismerteti.

Sorrend (elsőbbség) Logikai operátor
Első (legmagasabb) NEM
Second ÉS
Harmadik (legalacsonyabb) OR

Az azonos típusú logikai operátorok asszociatívak, és nincs megadva számítási sorrend. Az (A AND B) AND (C ÉS D) például kiszámítható (B ÉS C) ÉS (A ÉS D) a logikai eredmény módosítása nélkül.

Example

Az alábbi példa a CONTAINSSEMANTIC záradék használatával a "család egy strandon" kifejezéssel kapcsolatos dokumentumokra és képekre vonatkozó lekérdezést mutat be.

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 Clause

Koncepcionális

Teljes szövegű predikátumok

Nem teljes szöveges predikátumok