|
|
ZveřejněnoVčera v 20:20
|
|
|
|

Fulltextové vyhledávání je volitelnou součástí databázového enginu SQL Serveru. Pokud jste při instalaci SQL Serveru nezvolili fulltextové vyhledávání, spusťte instalátor SQL Serveru znovu, abyste ho přidali.
Přehled
Index s plným textem zahrnuje jeden nebo více sloupců založených na znacích v tabulce. Tyto sloupce mohou mít kterýkoli z následujících datových typů: char, varchar, nchar, nvarchar, text, ntext, image, xml nebo varbinary(max) a FILESTREAM. Každý index v plném textu vytváří index pro jeden nebo více sloupců v tabulce a každý sloupec může používat specifický jazyk.
Dotazy v plném textu pracují se slovy a frázemi podle pravidel konkrétních jazyků (například angličtiny nebo japonštiny), čímž provádějí vyhledávání jazyků na základě textových dat v indexu plného textu. Dotazy v plném textu mohou obsahovat jednoduchá slova a fráze, nebo různé formy slov či frází. Dotaz v plném textu vrací všechny dokumenty obsahující alespoň jednu shodu (také známou jako "hit"). Shoda nastává, když cílový dokument obsahuje všechny termíny uvedené v plnotextovém dotazu a odpovídá jakýmkoli jiným kritériím vyhledávání (například vzdálenosti mezi shodnými výrazy).
Linux Docker MSSQL 2022 Instalace služby pro vyhledávání v plném textu
Reference jsou následující:
Zkontrolujte, zda je v SQL SERVERu nainstalována funkce vyhledávání v plném textu
Příkaz je následující:
SQL Server Full-Text Search, Full-Text Index
Nejprve vytvořte novou testovací knihovnu a vložte testovací data. Skript je následující:
Vytvořte plnotextový obsah
K uložení indexu plného textu se používá plnotextový obsah. Můžete ji vytvořit přímo pomocí následujících skriptů:
Vytvořte plnotextové indexy pro databázové tabulky
Při vytváření celotextového indexu pro databázovou tabulku je potřeba specifikovat odpovídající jazyk. Protože segmentace slov se liší mezi jazyky, SQL Server použije segmentaci slov příslušného jazyka k zpracování dat v tabulce. Fulltextové vyhledávání SQL Serveru podporuje přibližně 50 různých jazyků, což vám umožňuje zobrazit všechny podporované jazyky dotazováním sys.fulltext_languages tabulek. Velení:
Jak je uvedeno níže:
Dále přidáváme plnotextový index pro zjednodušenou čínštinu do polí Název a Obsah v tabulce Novinky:
Fulltextové vyhledávání predikátů a funkcí
Dotazy v plném textu používají fulltextové predikáty (OBSAHUJEaVOLNÝ TEXT) a funkce plného textu (CONTAINSTABLEaFREETEXTTABLE)。 Podporují složitou syntaxi Transact-SQL, která podporuje různé formy dotazovacích termínů.
Rozdíl mezi CONTAINS a FREETEXT
CONTAINS: Přihlášení k hypertextovému odkazu je viditelné.
Použijte přesné metody párování k nalezení konkrétních slov nebo frází v textu. Podporuje složité podmínky dotazu, jako je proximity search (například slova musí být blízko sebe), vyhledávání předpony a další. Obvykle se používá v situacích, kdy je potřeba konkrétnější kontrola výsledků vyhledávání.
FREETEXT: Přihlášení k hypertextovému odkazu je viditelné.
Poskytuje flexibilnější a přirozeně založený vyhledávací zážitek. Nejsou vyžadována žádná zvláštní kritéria vyhledávání; Automaticky analyzuje vstupní text a snaží se najít související obsah. Je vhodnější pro uživatele, kteří chtějí provádět jednoduché vyhledávání klíčových slov jako Google, aniž by se museli obávat konkrétních míst nebo formátů.
Příkazy jsou následující:
Jak je uvedeno níže:
CONTAINSTABLE a FREETEXTTABLE
CONTAINSTABLE vrací tabulky, které splňují kritéria dotazu. V SQL příkazech je můžeme považovat za běžné tabulky a dotazy pomocí CONTAINSTABLE vracejí hodnotu RANK a KEY pro každý řádek. RANK se používá k označení míry korelace s hodnotami mezi 0~1000 a KEY je ID hlavní tabulky. FREETEXTTABLE nejprve rozdělí slova a věty, které mají být dotazovány, poté dotazy pro párování. Příkaz je následující:
Jak je uvedeno níže:
Navíc můžete zkontrolovat výsledky segmentace dotazem sys.dm_fts_parser:
Jak je uvedeno níže:
vydat
Otázka: CONTAINS ve výchozím nastavení nepodporuje fuzzy dotazy. Pokud zadáte CONTAINS(Column, 'apple'), bude odpovídat kořenovému slovu (např. apples), ale ne ananas. Řešení: Pokud jsou potřeba fuzzy dotazy, musí být umístěny před a za žolíkyPřidejte dvojité uvozovky a hvězdičku:OBSAHUJE(sloupec, '"*apple*"')
Odkaz:
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné. |
Předchozí:Webová platforma pro práci na dálku, práci a freelance
|