Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 10896|Răspunde: 0

[Sursă] Unele cunoștințe despre căutarea full-text SQL Server 2008

[Copiază linkul]
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 bine
Următor:O fată din Lianyungang, provincia Jiangsu, a fost dezbrăcată de cămașa în toaletă și bătută cu autoritate
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com