1. Prečítal som si niekoľko dobrých príspevkov,
Prehľad plnotextového vyhľadávania SQL Server 2008 http://www.cnblogs.com/galaxyyao/archive/2009/02/13/1390139.html
Plnotextový index http://www.cnblogs.com/liulun/articles/1368655.html
Najprv skopírujte odsek:
Otázka: Prečo fulltextové vyhľadávanie? Odpoveď: Pretože rýchlosť dotazovania textu je pomalá (neodporúča sa budovať index na texte, čo je dôvod) Otázka: Je nejaký rozdiel oproti roku 2005? A; Samozrejme, existuje rozdiel a názov predchádza integrovaný. Predtým mal 05 samostatný indexový súbor a engine, ale v 08 bol integrovaný do súborovej skupiny. Otázka: Aký je princíp? Odpoveď: Na základe kľúčových slov Otázka: Ako súvisí s bežnými indexmi? Odpoveď: Cieľom je zlepšiť rýchlosť dotazov. Indexy s plným textom majú mnohé rovnaké vlastnosti ako indexy Fulltextové vyhľadávanie využíva sémantické vyhľadávanie (táto technika znie veľmi hlboko) a môže sa použiť aj pre binárne dokumenty. Otázka: Na čo slúži? Odpoveď: Pre najjednoduchší príklad, vyhľadávanie prác, fuzzy párovanie, rýchle a veľké množstvá môžu tiež byť hodnotené.
Dva. Potom choď na MSDN a pozri si Dongdong:
Prehľad indexu v plnom texte
http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
Niektoré z nasledujúcich citátov sú skopírované nasledovne:
1. V SQL Server 2008 je plnotextový engine plne integrovaný do databázového enginu. Full-textový engine je teraz v SQL Server procese (sqlservr.exe) namiesto samostatného procesu (msftesql.exe). Integráciou fulltextového enginu do databázového enginu sa zlepšuje spravovateľnosť fulltextu, optimalizujú hybridné dotazy a zlepšuje sa celkový výkon. Od: http://msdn.microsoft.com/zh-cn/library/ms142587.aspx
2. Kroky vytvorenia full-textového vyhľadávania, príliš lenivý robiť screenshoty, vidieť, že to už urobili iní, citovať priamo, ale od druhej stránky je to iné ako môj lokálny, nemôžem priamo kliknúť pravým tlačidlom na tabuľku a vytvoriť fulltextové vyhľadávanie, predvolený je šedý, môžem vytvoriť iba index v katalógu fulltextového indexu v úložisku. http://www.sql-server-performance.com/2010/full-text-search-2008/
3. Spočiatku som si myslel, že adresár plnotextového vyhľadávania by mal byť adresár na príslušnom pevnom disku, čo je podobné konceptu locune. V skutočnosti je však od SQL Server 2008 plnotextový adresár virtuálnym objektom a nepatrí do žiadnej súborovej skupiny. Plnotextový obsah je logický koncept, ktorý predstavuje súbor indexov s plným textom. Zdroj:
http://msdn.microsoft.com/zh-cn/library/ms142497.aspx
4. Môžete vytvoriť celý textový index len pre tabuľkový alebo indexový pohľad, ale nie pre bežný pohľad.
Full-text index je špeciálny typ funkcionálneho indexu založeného na značkách, ktorý generuje a udržiava fulltextový engine. Na vytvorenie fulltextového vyhľadávania v tabuľke alebo zobrazení musí mať tabuľka alebo pohľad jedinečný, nenulovateľný jednostĺpcový index. Fulltextový engine musí použiť tento jedinečný index na mapovanie každého riadku v tabuľke na jedinečný kompresovateľný kľúč. Indexy plného textu môžu zahŕňať stĺpce Char, Varchar, Nchar, Nvarchar, Text, Ntext, Image, XML, Varbinary a Varbinary(max).
5. Na vytvorenie plnotextového indexu v Tabuľke A existuje predpoklad, že na Tabuľke A musí byť aspoň jeden jedinečný index, teda ak na Tabuľke A nie je index, nechcete vytvoriť plnotextový index v Tabuľke A.
V 6.SQL Server 2008 je veľkosť indexu plného textu obmedzená iba dostupnými pamäťovými zdrojmi počítača, na ktorom beží inštancia SQL Server. http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
7. Dotazovanie viacerých stĺpcov (fulltextové vyhľadávanie) Špecifikovaním zoznamu stĺpcov na vyhľadávanie môžete dotazovať viacero stĺpcov pomocou predikátu CONTAINS. Tieto stĺpce musia byť z tej istej tabuľky.
Použite zátvorky, SELECT Name, Color FROM production.product WHERE CONTAINS(((Name, Color), 'Red');
Alebo použite znak *, VYBRAŤ názov, farbu FROM Production.Product WHERE CONTAINS(*, 'Red');
Zdroj: http://msdn.microsoft.com/zh-cn/library/ms142488.aspx
9. Dotazovať viacero stĺpcov pre viacero tabuliek
Môže len OBSAHOVAŤ alebo OBSAHOVAŤ, napríklad KDE OBSAHUJE(t1. Názov, 'Červený') alebo OBSAHUJE(t2. Meno, 'Red');
10. Optimalizoval výkon plnotextových dotazov
Použite ALTER FULLTEXT CATALOG REORGANIZE na reorganizáciu fulltextového katalógu.
ZMENA PLNOTEXTOVÉHO KATALÓGU zákaznícka REKONŠTRUKCIA S ACCENT_SENSITIVITY=VYPNUTÉ
Pre viac informácií si pozrite toto: http://msdn.microsoft.com/zh-cn/library/cc879244.aspx
11. Vykonajte vyhľadávanie prefixu http://msdn.microsoft.com/zh-cn/library/ms142492.aspx
Na vyhľadávanie slov alebo fráz s určenou predponou môžete použiť full-textové vyhľadávanie.
Keď vykonáte vyhľadávanie prefixu, všetky položky v stĺpci obsahujúcom text začínajúci špecifikovaným prefixom sa vrátia. Napríklad, aby ste vyhľadali všetky riadky, ktoré obsahujú prefix top (napríklad topple, topping a top samotný), dotaz by vyzeral takto:
VYBER * FROM Product WHERE CONTAINS (ProductName, '"auto*"' ); Všetok text, ktorý zodpovedá textu uvedenému pred hviezdičkou (*), bude vrátený.
Poznámka: Ak nepridáte dvojité úvodzovky pred a za text a hviezdičku (napr. CONTAINS (DEscrip{filter}tION, 'top*')), celotextové vyhľadávanie nebude hviezdičku používať ako zástupnú kartu.
Keď je prefix fráza, každý token, ktorý frázu tvorí, sa považuje za samostatný prefix. Všetky riadky obsahujúce slová začínajúce týmito predponami sú vrátené. Napríklad predpona "light bread*" bude hľadať riadky s textom "light breaded", "lightly breaded" alebo "light bread", ale nevráti "Lightly toasted bread".
|