|
|
Postat pe 04.10.2015 21:03:04
|
|
|

1. Am citit câteva postări bune,
SQL Server 2008 Prezentare generală a căutării textului integral http://www.cnblogs.com/galaxyyao/archive/2009/02/13/1390139.html
Indexul textului integral http://www.cnblogs.com/liulun/articles/1368655.html
Mai întâi, copiază un paragraf:
Î: De ce căutarea full-text? R: Pentru că viteza de interogare a textului este lentă (nu este recomandat să se construiască un index pe text, acesta este motivul) Î: Există vreo diferență față de 2005? A; Desigur, există o diferență, iar numele este precedat de un integrat. Anterior, 05 avea un fișier index și un motor separat, dar în 08 a fost integrat în grupul de fișiere. Î: Care este principiul? R: Pe baza cuvintelor cheie Î: Cum se leagă de indicii obișnuiți? R: Scopul este de a îmbunătăți viteza interogării. Indexurile full-text au multe dintre aceleași caracteristici ca și indexurile Căutarea full-text folosește căutarea semantică (această tehnică sună foarte profundă) și poate fi folosită și pentru documente binare. Î: La ce folosește? R: Ca să dau cel mai simplu exemplu, caută articole, potrivirea neclară, cantități rapide și mari pot de asemenea să se claseze.
Doi. Apoi mergi la MSDN să vezi niște Dongdong:
Prezentare generală a indexului textului integral
http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
Unele dintre următoarele citate sunt copiate astfel:
1. În SQL Server 2008, motorul full-text este complet integrat în motorul bazei de date. Motorul de text integral se află acum într-un proces SQL Server (sqlservr.exe) în loc de un proces separat (msftesql.exe). Prin integrarea motorului de text integral în motorul bazei de date, gestionabilitatea textului integral este îmbunătățită, interogările hibride sunt optimizate, iar performanța generală este îmbunătățită. De la: http://msdn.microsoft.com/zh-cn/library/ms142587.aspx
2. Pașii de creare ai căutării full-text, prea leneș să fac capturi de ecran, să văd că alții au făcut-o, să citez direct, dar de pe a doua pagină este diferit de cel local, nu pot face click dreapta direct pe tabel pentru a crea o căutare full-text, implicit este gri, pot crea doar un index în catalogul directorului full-text din stocare. http://www.sql-server-performance.com/2010/full-text-search-2008/
3. La început, am crezut că directorul de căutare full-text ar trebui să fie un director pe hard disk-ul corespunzător, ceea ce este similar cu conceptul de locune. Dar, de fapt, începând cu SQL Server 2008, directorul full-text este un obiect virtual și nu aparține niciunui grup de fișiere. Un cuprins full-text este un concept logic care reprezintă un set de indexuri full-text. Sursa:
http://msdn.microsoft.com/zh-cn/library/ms142497.aspx
4. Poți crea doar un index full-text pentru o vizualizare de tabel sau index, dar nu și un index full-text pentru o vizualizare normală.
Un index full-text este un tip special de index funcțional bazat pe markeri, generat și menținut de motorul full-text. Pentru a crea o căutare full-text pe un tabel sau o vizualizare, tabelul sau vizualizarea trebuie să aibă un index unic, neanulabil, cu o singură coloană. Motorul full-text trebuie să folosească acest index unic pentru a mapa fiecare rând din tabel la o cheie unică compresibilă. Indexurile full-text pot include coloanele Char, Varchar, Nchar, Nvarchar, Text, Ntext, Image, XML, Varbinary și Varbinary(max).
5. Pentru a crea un index full-text pe Tabelul A, există o premisă, și anume că trebuie să existe cel puțin un index unic pe Tabelul A, adică, dacă nu există index în Tabelul A, nu se dorește să se creeze un index full-text pe Tabelul A.
În 6.SQL Server 2008, dimensiunea indexului textului integral este limitată doar de resursele de memorie disponibile ale calculatorului care rulează instanța SQL Server. http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
7. Interoghează mai multe coloane (căutare text complet) Prin specificarea unei liste de coloane de căutat, poți interoga mai multe coloane folosind predicatul CONTAINS. Aceste coloane trebuie să fie din același tabel.
Folosește paranteze, SELECT Name, Color FROM Production.Product WHERE CONTAINS((Name, Color), 'Red');
Sau folosește semnul *, SELECT Name, Color FROM Production.Product WHERE CONTAINS(*, 'Red');
Sursa: http://msdn.microsoft.com/zh-cn/library/ms142488.aspx
9. Interoghează mai multe coloane pentru mai multe tabele
Poate doar să CONTAIN sau CONTAINS, cum ar fi WHERE CONTAINS(t1. Nume, "Roșu") sau CONTAIN (t2. Nume, "Roșu");
10. Optimizarea performanței interogărilor full-text
Folosește ALTER FULLTEXT CATALOG REORGANIZE pentru a reorganiza catalogul full-text.
MODIFICARE FULLTEXT CATALOG REBUILD CLIENT CU ACCENT_SENSITIVITY=OPRIT
Pentru mai multe informații, uită-te doar la asta: http://msdn.microsoft.com/zh-cn/library/cc879244.aspx
11. Efectuați o căutare prefixă http://msdn.microsoft.com/zh-cn/library/ms142492.aspx
Poți folosi căutarea full-text pentru a căuta cuvinte sau expresii cu un prefix specificat.
Când efectuezi o căutare cu prefix, toate elementele din coloană care conțin text ce începe cu prefixul specificat sunt returnate. De exemplu, pentru a căuta toate rândurile care conțin prefixul top (cum ar fi topple, topping și top însuși), interogarea ar arăta astfel:
SELECT * FROM Product WHERE CONTAINS (ProduseNumele, '"auto*"' ); Tot textul care corespunde celui specificat înainte de asterisc (*) va fi returnat.
Notă: Dacă nu adăugați ghilimele duble înainte și după text și asterisc (de exemplu, CONTAINS (DEscrip{filter}tION, 'top*')), căutarea în text integral nu va folosi asteriscul ca wildcard.
Când un prefix este o frază, fiecare jeton care alcătuiește fraza este tratat ca un prefix separat. Toate liniile care conțin cuvinte care încep cu aceste prefixe sunt returnate. De exemplu, prefixul "light bread*" va căuta linii cu textul "light breaded", "lightly breaded" sau "light bread", dar nu va returna "Lightly toasted bread".
|
Precedent:Un cântec cantonez de Jacky Cheung, se simte destul de bineUrmător:O fată din Lianyungang, provincia Jiangsu, a fost dezbrăcată de cămașa în toaletă și bătută cu autoritate
|