Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Vyhledávání přesných nebo nejasných (méně přesných) shod na jednotlivá slova a fráze, slov v určité vzdálenosti od sebe nebo vážených shod v SQL Serveru. CONTAINS je predikát používaný v klauzuli WHERE v příkazu SELECT Transact-SQL pro provádění celotextového vyhledávání SQL Serveru na sloupcích s indexovanými sloupci obsahujícími znakové typy.
CONTAINS může vyhledávat:
Slovo nebo frázi.
Předpona slova nebo fráze.
Slovo vedle jiného slova.
Slovo vzniklé inflktivně z jiného slova (například slovo drive je ohýbací kmen od drives, drive, driving a driven).
Slovo, které je synonymem jiného slova pomocí tezauru (například slovo "kov" může mít synonyma jako "hliník" a "ocel").
Informace o formách fulltextového vyhledávání, které sql Server podporuje, najdete v tématu Query s Full-Text Search.
Syntaxe
CONTAINS (
{
column_name | ( column_list )
| *
| PROPERTY ( { column_name }, 'property_name' )
}
, '<contains_search_condition>'
[ , LANGUAGE language_term ]
)
<contains_search_condition> ::=
{
<simple_term>
| <prefix_term>
| <generation_term>
| <generic_proximity_term>
| <custom_proximity_term>
| <weighted_term>
}
|
{ ( <contains_search_condition> )
[ { <AND> | <AND NOT> | <OR> } ]
<contains_search_condition> [ ...n ]
}
<simple_term> ::=
{ word | "phrase" }
<prefix term> ::=
{ "word*" | "phrase*" }
<generation_term> ::=
FORMSOF ( { INFLECTIONAL | THESAURUS } , <simple_term> [ ,...n ] )
<generic_proximity_term> ::=
{ <simple_term> | <prefix_term> } { { { NEAR | ~ }
{ <simple_term> | <prefix_term> } } [ ...n ] }
<custom_proximity_term> ::=
NEAR (
{
{ <simple_term> | <prefix_term> } [ ,...n ]
|
( { <simple_term> | <prefix_term> } [ ,...n ] )
[, <maximum_distance> [, <match_order> ] ]
}
)
<maximum_distance> ::= { integer | MAX }
<match_order> ::= { TRUE | FALSE }
<weighted_term> ::=
ISABOUT
( {
{
<simple_term>
| <prefix_term>
| <generation_term>
| <proximity_term>
}
[ WEIGHT ( weight_value ) ]
} [ ,...n ]
)
<AND> ::=
{ AND | & }
<AND NOT> ::=
{ AND NOT | &! }
<OR> ::=
{ OR | | }
Arguments
column_name
Je název sloupce indexovaného v plném textu tabulky specifikované v klauzuli FROM. Sloupce můžou být typu
column_list
Specifikuje dva nebo více sloupců oddělených čárkami.
column_list musí být uzavřeny v závorkách. Pokud není zadán language_term, musí být jazyk všech sloupců column_list stejný.
*
Specifikuje, že dotaz prohledává všechny indexované sloupce v celé textové tabulce specifikované v klauzuli FROM pro danou podmínku vyhledávání. Sloupce v klauzuli CONTAINS musí pocházet z jedné tabulky, která má plnotextový index. Pokud není zadán language_term, musí být jazyk všech sloupců tabulky stejný.
VLASTNICTVÍ ( column_name , 'property_name')
platí pro: SQL Server 2012 (11.x) a novější.
Specifikuje vlastnost dokumentu, na které se hledá zadaná podmínka vyhledávání.
Důležité
Aby dotaz vrátil jakékoli řádky, musí být property_name zadán v seznamu vlastností vyhledávání v indexu plného textu a index plného textu musí obsahovat vlastnosti specifické položky pro property_name. Pro více informací viz Vyhledávat dokumenty s Vyhledáváním v seznamu nemovitostí.
LANGUAGE_TERM JAZYKA
Je jazyk, který se používá pro lámání slov, stemming, rozšíření a nahrazování synonym a pro odstranění šumových slov (nebo stopwordů) jako součást dotazu. Tento parametr je volitelný.
Pokud jsou dokumenty různých jazyků uloženy společně jako binární velké objekty (BLOB) v jednom sloupci, identifikátor lokality (LCID) daného dokumentu určuje, v jakém jazyce se bude jeho obsah indexovat. Při dotazování na takový sloupec může určení jazyka language_term zvýšit pravděpodobnost dobré shody.
language_term může být specifikováno jako řetězec, celočíselná nebo hexadecimální hodnota odpovídající LCID jazyka. Pokud je zadán language_term , jazyk, který představuje, se použije na všechny prvky podmínky hledání. Pokud není zadána žádná hodnota, použije se jazyk fulltextu sloupce.
Když je zadán jako řetězec, odpovídá language_term hodnotě sloupce alias v pohledu kompatibility sys.syslanguages (Transact-SQL). Řetězec musí být uzavřený v jednoduchých uvozovkách, jako v "language_term". Pokud je zadáno jako celé číslo, language_term je skutečný identifikátor LCID, který identifikuje jazyk. Pokud je zadaná jako šestnáctková hodnota, language_term je 0x následovaná šestnáctkovou hodnotou LCID. Šestnáctková hodnota nesmí překročit osm číslic, včetně počátečních nul.
Pokud je hodnota ve formátu dvoubajtové znakové sady (DBCS), SQL Server ji převede na Unicode.
Pokud zadaný jazyk není platný nebo nejsou nainstalovány žádné zdroje odpovídající tomuto jazyku, SQL Server vrátí chybu. Chcete-li použít neutrální jazykové prostředky, zadejte 0x0 jako language_term.
<
contains_search_condition>
Určuje text, který se má vyhledat v column_name a podmínky shody.
<contains_search_condition> je Nvarchar. Implicitní převod nastane, když se jako vstup použije jiný datový typ znaku. Velké datové typy řetězců nvarchar(max) a varchar(max) nelze použít. V následujícím příkladu @SearchWord proměnná, která je definována jako varchar(30), způsobí implicitní převod v predikátu CONTAINS.
USE AdventureWorks2022;
GO
DECLARE @SearchWord VARCHAR(30)
SET @SearchWord ='performance'
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(Description, @SearchWord);
Vzhledem k tomu, že při převodu nefunguje "zašifrování parametrů", použijte nvarchar pro lepší výkon. V příkladu deklarujte @SearchWord jako nvarchar(30).
USE AdventureWorks2022;
GO
DECLARE @SearchWord NVARCHAR(30)
SET @SearchWord = N'performance'
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(Description, @SearchWord);
Můžete také použít nápovědu OPTIMIZE FOR pro dotazy v případech, kdy je generován neoptimální plán.
slovo
Je řetězec znaků bez mezer nebo interpunkce.
fráze
Je jedno nebo více slov s mezerami mezi jednotlivými slovy.
Poznámka:
Některé jazyky, například ty psané v některých částech Asie, mohou mít fráze složené z jednoho nebo více slov bez mezer mezi nimi.
<simple_term>
Specifikuje shodu pro přesné slovo nebo frázi. Příklady platných jednoduchých termínů jsou "blue berry", blueberry a "Microsoft SQL Server". Fráze by měly být ohraničeny dvojitými uvozovkami (""). Slova ve frázi se musí objevovat ve stejném pořadí, jak je uvedeno v <contains_search_condition> , jako se objevují ve sloupci databáze. Vyhledávání znaků ve slově nebo frázi není citlivé na velká písmena. Slova šumu (nebo stopwordy) (například a, and, nebo the) v indexovaných sloupcích s plným textem nejsou v indexu plného textu uložena. Pokud je v jednom vyhledávání použito slovo šumu, SQL Server vrátí chybovou zprávu, že dotaz obsahuje pouze slova šumu. SQL Server obsahuje standardní seznam slov šumu v adresáři \Mssql\Binn\FTERef každé instance SQL Serveru.
Interpunkce je ignorována. Proto se CONTAINS(testing, "computer failure") shoduje s řádkem s hodnotou "Kde je můj počítač? Nenajít ho by bylo drahé." Pro více informací o chování word breakerů viz Konfigurovat a spravovat Word breakery a stemmery pro vyhledávání.
<prefix_term>
Specifikuje shodu slov nebo frází začínajících stanoveným textem. Uzavřete předponu do dvojitých uvozovek ("") a přidejte hvězdičku (*) před koncovou uvozovku, aby veškerý text začínající jednoduchým termínem uvedeným před hvězdičkou byl shoden. Klauzule by měla být specifikována takto: CONTAINS (column, '"text*"'). Hvězdička odpovídá nule, jednomu nebo více znakům (kořenového slova nebo slov ve slově či frázi). Pokud text a hvězdička nejsou ohraničeny dvojitými uvozovkami, takže predikát zní , CONTAINS (column, 'text*')celotextové vyhledávání považuje hvězdičku za znak a hledá přesné shody s .text* Fulltextový engine nenajde slova s hvězdičkou (*), protože word breakery obvykle takové znaky ignorují.
Když <je prefix_term> fráze, každé slovo obsažené ve frázi je považováno za samostatnou předponu. Dotaz určující předponu výrazu "local wine*" se tedy shoduje s libovolnými řádky s textem "místní vinárna", "hostina se zaměřením na místní vína" atd.
<generation_term>
Specifikuje shodu slov, pokud zahrnuté jednoduché termíny obsahují varianty původního slova, které je třeba hledat.
OHÝBACÍ
Specifikuje, že jazykově závislý stemmer má být použit na specifikovaném jednoduchém termínu. Chování stemmerů je definováno na základě pravidel stemování každého konkrétního jazyka. Neutrální jazyk nemá přiřazený stemmer. Jazyk sloupců dotazovaných sloupců se používá k označení požadovaného stemmeru. Pokud je language_term specifikován, použije se stemmer odpovídající danému jazyku.
Dané <simple_term> v rámci< generation_term> nebude odpovídat jak podstatným jménům, tak slovesům.
TEZAURUS
Specifikuje, že se používá tezaurus odpovídající sloupcovému plnotextovému jazyku, nebo jazyk uvedený v dotazu. Nejdelší vzor nebo vzory z <simple_term> jsou porovnány s tezaurem a generují se další termíny, které rozšiřují nebo nahrazují původní vzor. Pokud se nenajde shoda pro celou nebo část <simple_term>, neshodná část se považuje za simple_term. Pro více informací o tezauru s plnotextovým vyhledáváním viz Konfigurovat a spravovat soubory tezaurů pro vyhledávání Full-Text.
<generic_proximity_term>
Specifikuje shodu slov nebo frází, které musí být v dokumentu, který je prohledáván.
Důležité
Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme vám použít <custom_proximity_term>.
BLÍZKO | ~
Označuje, že slovo nebo fráze na každé straně operátoru NEAR nebo ~ musí být v dokumentu uvedena, aby byla shoda vrácena. Musíte zadat dva vyhledávací výrazy. Dané vyhledávací slovo může být buď jedno slovo, nebo fráze ohraničená dvojitými uvozovkami ("fráze").
Několik blízkostních členů lze řetězit, například nebo a NEAR b NEAR ca ~ b ~ c. Podmínky řetězené blízkosti musí být všechny v dokumentu, aby bylo možné shodu vrátit.
Například CONTAINS(*column_name*, 'fox NEAR chicken') a oba CONTAINSTABLE(*table_name*, *column_name*, 'fox ~ chicken') vrátí dokumenty ve specifikovaném sloupci, které obsahují jak "liška", tak "kuře". Navíc CONTAINSTABLE vrací hodnocení pro každý dokument podle blízkosti "liška" a "kuře". Například pokud dokument obsahuje větu "Liška snědla kuře", jeho hodnocení by bylo vysoké, protože tyto pojmy jsou si blíže než v jiných dokumentech.
Pro více informací o obecných blízkostních termínech viz Vyhledávání slov blízkých jinému slovu pomocí NEAR.
<custom_proximity_term>
platí pro: SQL Server 2012 (11.x) a novější.
Specifikuje shodu slov nebo frází a volitelně maximální povolenou vzdálenost mezi vyhledávacími výrazy. Můžete také specifikovat, že vyhledávací výrazy musí být nalezeny přesně v pořadí, v jakém je zadáte (<match_order>).
Dané vyhledávací slovo může být buď jedno slovo, nebo fráze ohraničená dvojitými uvozovkami ("fráze"). Každé uvedené ustanovení musí být v dokumentu, aby bylo možné shodu vrátit. Musíte zadat alespoň dva vyhledávací výrazy. Maximální počet vyhledávacích dotazů je 64.
Ve výchozím nastavení vlastní blízkostní termín vrací všechny řádky obsahující zadané termíny bez ohledu na vzdálenost mezi nimi a bez ohledu na jejich pořadí. Například pro odpovídající dotaz by dokument term1 musel obsahovat a "term3 term4" kdekoli, v libovolném pořadí:
CONTAINS(column_name, 'NEAR(term1,"term3 term4")')
Volitelné parametry jsou následující:
<maximum_distance>
Určuje maximální povolenou vzdálenost mezi vyhledávacími výrazy na začátku a konci řetězce, aby tento řetězec mohl být shodný.
integer
Specifikuje kladné celé číslo od 0 do 4294967295. Tato hodnota určuje, kolik ne-vyhledávacích výrazů se může vyskytnout mezi prvním a posledním vyhledávacím výrazem, s výjimkou jakýchkoli dalších specifikovaných vyhledávacích výrazů.
Například následující dotaz hledá AA a BB, v libovolném pořadí, v maximální vzdálenosti pět.
CONTAINS(column_name, 'NEAR((AA,BB),5)')
Řetěz AA one two three four five BB by byl shoda. V následujícím příkladu dotaz specifikuje tři vyhledávací výrazy, AA, BB, a CC v maximální vzdálenosti pěti:
CONTAINS(column_name, 'NEAR((AA,BB,CC),5)')
Tento dotaz by odpovídal následujícímu řetězci, kde je celková vzdálenost pět:
BB one two CC three four five A A
Všimněte si, že vnitřní vyhledávací výraz CC, není započítán.
MAX
Vrátí všechny řádky, které obsahují zadané členy bez ohledu na vzdálenost mezi nimi. Toto je výchozí hodnota.
<match_order>
Specifikuje, zda se termíny musí vyskytovat ve stanoveném pořadí, aby byly vráceny vyhledávacím dotazem. Pro specifikaci <match_order> musíte také uvést <maximum_distance>.
<match_order> nabývá jedné z následujících hodnot:
TRUE
Vynucuje stanovené nařízení v rámci podmínek. Například by NEAR(A,B) odpovídalo pouze A ... B.
FALSE
Ignoruje stanovené pořadí. Například by NEAR(A,B) se shodovalo s oběmaA ... B.B ... A
Toto je výchozí hodnota.
Například následující blízkostní termín vyhledává slova "Monday", "Tuesday", a "Wednesday" ve stanoveném pořadí bez ohledu na vzdálenost mezi nimi:
CONTAINS(column_name, 'NEAR ((Monday, Tuesday, Wednesday), MAX, TRUE)')
Pro více informací o používání vlastních blízkých termínů viz Vyhledávání slov blízko dalšímu slovu s NEAR.
<weighted_term>
Specifikuje, že odpovídající řádky (vrácené dotazem) odpovídají seznamu slov a frází, z nichž každá má volitelně přiřazenou váhovou hodnotu.
O TÉMATU
Specifikuje klíčové slovo <weighted_term> .
VÁHA(weight_value)
Specifikuje váhovou hodnotu, což je číslo od 0,0 do 1,0. Každá složka v< weighted_term> může obsahovat weight_value.
weight_value je způsob, jak změnit, jak různé části dotazu ovlivňují hodnotu pořadí přiřazenou každému řádku odpovídajícímu dotazu. VÁHA neovlivňuje výsledky dotazů CONTAINS, ale VÁHA ovlivňuje pořadí v dotazech CONTAINSTABLE .
Poznámka:
Desetinný oddělovač je vždy tečka, bez ohledu na lokalitu operačního systému.
{ AND | & } | { A NE | &! } | { NEBO | | }
Specifikuje logickou operaci mezi dvěma obsahovými vyhledávacími podmínkami.
{ AND | & }
Označuje, že pro shodu musí být splněny podmínky vyhledávání obsahující obě složky. Symbol ampersand (&) může být použit místo klíčového slova AND pro reprezentaci operátoru AND.
{ A NE | &! }
Označuje, že druhá podmínka vyhledávání nesmí být přítomna pro shodu. Ampersand následovaný vykřičníkem symbolem (&!) může být použit místo klíčového slova AND NOT pro vyjádření operátoru AND NOT.
{ NEBO | | }
Označuje, že pro shodu musí být splněna některá z těchto dvou podmínek vyhledávání. Místo klíčového slova OR může být použit čárkový symbol (|) pro reprezentaci operátoru OR.
Pokud <contains_search_condition> obsahuje skupiny v závorkách, tyto skupiny jsou nejprve vyhodnoceny. Po vyhodnocení skupin v závorkách platí tato pravidla při použití těchto logických operátorů s obsahuje podmínky vyhledávání:
NOT se aplikuje před AND.
NOT může nastat pouze po AND, tedy AND NOT. Operátor OR NOT není povolen. NOT nelze specifikovat před prvním obdobím. Například není
CONTAINS (mycolumn, 'NOT "phrase_to_search_for" ' )platný.AND se aplikuje před OR.
Booleovské operátory stejného typu (AND, OR) jsou asociativní a lze je tedy aplikovat v libovolném pořadí.
n
Je zástupný výraz označující, že více podmínek vyhledávání OBSAHUJE a lze v nich specifikovat.
Obecné poznámky
Predikáty a funkce fulltextu pracují na jedné tabulce, která je odvozena v predikátu FROM. Pokud chcete vyhledat více tabulek, pomocí spojené tabulky v klauzuli FROM vyhledejte sadu výsledků, která je součinem dvou nebo více tabulek.
Predikáty fulltextu nejsou v klauzuli OUTPUT povoleny, pokud je úroveň kompatibility databáze nastavená na 100.
Dotazování vzdálených serverů
Můžete použít čtyřdílné jméno v predikátu CONTAINS nebo FREETEXT pro dotazování na sloupce indexovaných v plném textu cílových tabulek na propojeném serveru. Pokud chcete připravit vzdálený server pro příjem fulltextových dotazů, vytvořte fulltextový index cílových tabulek a sloupců na vzdáleném serveru a pak přidejte vzdálený server jako propojený server.
Porovnání funkce LIKE s hledáním Full-Text
Na rozdíl od fulltextového vyhledávání funguje predikát LIKETransact-SQL pouze na vzorech znaků. Predikát LIKE také nelze použít k dotazování na formátovaná binární data. Dotaz LIKE oproti velkému množství nestrukturovaných textových dat je navíc mnohem pomalejší než ekvivalentní fulltextový dotaz na stejná data. Dotaz LIKE na miliony řádků textových dat může trvat několik minut; zatímco dotaz v plném textu může trvat jen několik sekund nebo méně vůči stejným datům, v závislosti na počtu vrácených řádků a jejich velikosti. Další úvahou je, že LIKE provádí pouze jednoduchý skenování vzorů celé tabulky. Dotaz v plném textu je naopak jazykově uvědomělý, aplikuje specifické transformace v době indexu a dotazu, například filtrováním stopwordů a tvorbou tezaurů a flexních rozšíření. Tyto transformace pomáhají plnotextovým dotazům zlepšit jejich zapamatování a konečné hodnocení výsledků.
Dotazování více sloupců (Full-Text vyhledávání)
Můžete dotazovat více sloupců zadáním seznamu sloupců pro vyhledávání. Sloupce musí být ze stejné tabulky.
Například následující OBSAHUJE vyhledávání dotazů pro termín Red ve sloupcích a NameColor v tabulce Production.Product vzorové databáze AdventureWorks2025.
Use AdventureWorks2022;
GO
SELECT Name, Color
FROM Production.Product
WHERE CONTAINS((Name, Color), 'Red');
Examples
A. Použití CONTAINS s <simple_term>
Následující příklad najde všechny produkty s cenou , $80.99 která obsahuje slovo Mountain.
USE AdventureWorks2022;
GO
SELECT Name, ListPrice
FROM Production.Product
WHERE ListPrice = 80.99
AND CONTAINS(Name, 'Mountain');
GO
B. Použití CONTAINS a fráze s <simple_term>
Následující příklad vrací všechny součiny, které obsahují buď frázi Mountain , nebo Road.
USE AdventureWorks2022;
GO
SELECT Name
FROM Production.Product
WHERE CONTAINS(Name, ' Mountain OR Road ')
GO
C. Použití CONTAINS s <prefix_term>
Následující příklad vrací všechny názvy produktů s alespoň jedním slovem začínajícím řetězcem předpony ve sloupci Name .
USE AdventureWorks2022;
GO
SELECT Name
FROM Production.Product
WHERE CONTAINS(Name, ' "Chain*" ');
GO
D. Použití CONTAINS a OR s <prefix_term>
Následující příklad vrací všechny kategoriové popisy obsahující řetězce s prefixy buď chain , nebo full.
USE AdventureWorks2022;
GO
SELECT Name
FROM Production.Product
WHERE CONTAINS(Name, '"chain*" OR "full*"');
GO
E. Použití CONTAINS s <proximity_term>
platí pro: SQL Server 2012 (11.x) a novější.
Následující příklad vyhledává tabulku Production.ProductReview pro všechny komentáře, které obsahují slovo bike v rámci 10 termínů slova "control" a v určeném pořadí (tedy kde ""bike předchází "control").
USE AdventureWorks2022;
GO
SELECT Comments
FROM Production.ProductReview
WHERE CONTAINS(Comments , 'NEAR((bike,control), 10, TRUE)');
GO
F. Použití CONTAINS s <generation_term>
Následující příklad vyhledává všechny produkty se slovy ve tvaru ride: riding, ridden a podobně.
USE AdventureWorks2022;
GO
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(Description, ' FORMSOF (INFLECTIONAL, ride) ');
GO
G. Použití CONTAINS s <weighted_term>
Následující příklad vyhledá všechny názvy produktů obsahující slova performance, comfortablenebo smootha různé váhy jsou uvedeny pro každé slovo.
USE AdventureWorks2022;
GO
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(Description, 'ISABOUT (performance weight (.8),
comfortable weight (.4), smooth weight (.2) )' );
GO
H. Použití CONTAINS s proměnnými
Následující příklad používá proměnnou místo konkrétního hledaného termínu.
USE AdventureWorks2022;
GO
DECLARE @SearchWord NVARCHAR(30)
SET @SearchWord = N'Performance'
SELECT Description
FROM Production.ProductDescription
WHERE CONTAINS(Description, @SearchWord);
GO
I. Použití CONTAINS s logickým operátorem (AND)
Následující příklad používá tabulku ProductDescription databáze AdventureWorks2025 . Dotaz používá predikát CONTAINS k vyhledávání popisů, kde ID popisu není roven 5 a popis obsahuje jak slovo Aluminum , tak slovo spindle. Podmínka hledání používá AND Booleovský operátor.
USE AdventureWorks2022;
GO
SELECT Description
FROM Production.ProductDescription
WHERE ProductDescriptionID <> 5 AND
CONTAINS(Description, 'Aluminum AND spindle');
GO
J. Použití CONTAINS k ověření vložení řádku
Následující příklad používá CONTAINS v poddotazu SELECT. Pomocí databáze AdventureWorks2025 dotaz získá hodnotu komentáře všech komentářů v tabulce ProductReview pro daný cyklus. Podmínka hledání používá AND Booleovský operátor.
USE AdventureWorks2022;
GO
INSERT INTO Production.ProductReview
(ProductID, ReviewerName, EmailAddress, Rating, Comments)
VALUES
(780, 'John Smith', 'john@fourthcoffee.com', 5,
'The Mountain-200 Silver from AdventureWorks2008 Cycles meets and exceeds expectations. I enjoyed the smooth ride down the roads of Redmond');
-- Given the full-text catalog for these tables is Adv_ft_ctlg,
-- with change_tracking on so that the full-text indexes are updated automatically.
WAITFOR DELAY '00:00:30';
-- Wait 30 seconds to make sure that the full-text index gets updated.
SELECT r.Comments, p.Name
FROM Production.ProductReview AS r
JOIN Production.Product AS p
ON r.ProductID = p.ProductID
AND r.ProductID = (SELECT ProductID
FROM Production.ProductReview
WHERE CONTAINS (Comments,
' AdventureWorks2008 AND
Redmond AND
"Mountain-200 Silver" '));
GO
K. Dotazování na dokumentové vlastnosti
platí pro: SQL Server 2012 (11.x) a novější.
Následující dotaz vyhledává indexovanou vlastnost Title, ve sloupci Document tabulky Production.Document . Dotaz vrací pouze dokumenty, jejichž Title vlastnost obsahuje řetězec Maintenance nebo Repair.
Poznámka:
Aby vyhledávání vlastností vrátilo řádky, musí filtr nebo filtry, které sloupec během indexování analyzují, extrahovat zadanou vlastnost. Také musí být celý textový index specifikované tabulky nakonfigurován tak, aby obsahoval tuto vlastnost. Pro více informací viz Vyhledávat dokumenty s Vyhledáváním v seznamu nemovitostí.
Use AdventureWorks2022;
GO
SELECT Document
FROM Production.Document
WHERE CONTAINS(PROPERTY(Document,'Title'), 'Maintenance OR Repair');
GO
Viz také
Začínáme s Full-Text vyhledáváním
Vytváření a správa katalogů Full-Text
VYTVOŘIT FULLTEXT KATALOG (Transact-SQL)
VYTVOŘIT FULLTEXT INDEX (Transact-SQL)
vytváření a správa indexů Full-Text
dotaz pomocí hledání Full-Text
CONTAINSTABLE (Transact-SQL)
VOLNÝ TEXT (Transact-SQL)
FREETEXTTABLE (Transact-SQL)
dotaz pomocí hledání Full-Text
hledáníFull-Text
Vytvoření Full-Text Vyhledávacích dotazů (Visual Database Tools)
WHERE (Transact-SQL)
Hledání vlastností dokumentu pomocí seznamů vlastností