 |
|
 |
 | Cautare fulltext cu MS SQL Server SQL |  |
Trimis: 19/07/2007 17:29 |
|
|
| Ad_Infinitum |
| Administrator |

 |
 |
| Data inscrierii: 23/Iun/2007 |
| Mesaje: 212 |
|
|
|
 |
 |
 |
|
Si MS SQL Server are posibilitati de cautare fulltext. Adica poate cauta diferite cuvinte in cimpuri text, inclusiv cu operatii booleane. Pentru asta e trebuință ca la instalarea SQL Server-ului sa alegeri si optiunea de cautare fulltext. Sau daca e instalat deja puteti modifica optiunile folosind wizardul serverului sau prin comenzi.
Intreg procesul instalarii cautarii fulltext este descris la http://msdn.microsoft.com/libr.....search.asp :
use Northwind
exec sp_fulltext_database 'enable'
exec sp_fulltext_catalog 'Cat_Desc', 'create', 'f:ft'
exec sp_fulltext_table 'Categories', 'create', 'Cat_Desc', 'PK_Categories'
exec sp_fulltext_column 'Categories', 'Description', 'add'
exec sp_fulltext_table 'Categories', 'start_full'
Dupa cum se poate vedea se face in mai multi pasi: intii se activeaza optiunea, apoi se creaza catalogul unde sint pastrati indecsii, apoi se creaza un index folosit de cautarea fulltext specificind cimpul folosit, se adauga apoi cimpurile folosite, iar in final se populeaza datele folosite pentru cautarea fulltext.
Aceelasi lucruri se pot face din wizardul SQL Server-ului, in mod vizual.
Dupa acesti pasi puteti folosi cautarile fulltext. Exista 2 comenzi de folosit: CONTAINS si FREETEXT.
Prima forma (CONTAINS) este cea mai utilizata si cere mai putin resurse, executind cautarea unor cuvinte cheie dupa regulile specificate. Aceasta forma returneaza de obicei mai putine efecte pentru ca nu analizeaza interogarile din punctul de vedere al limbii, ci exact cum ati specificat.
A doua forma (FREETEXT) face o analiza mai complexa a cuvintelor de cautat in functie de limba utilizata. O sa consume mai numeroase resurse insa poate returna solutii corecte foarte asemanatoare cu parametrii dati.
Exemple:
SELECT * FROM Products WHERE CONTAINS(Description, 'bottles')
SELECT * FROM Products WHERE CONTAINS(Description, '"bottle*"') = cauta tot ce contine cuvinte ce incep cu 'bottle'
SELECT * FROM Products WHERE CONTAINS(Description, '"bottle*" OR "can*"') = cauta tot ce contine cuvinte ce incep cu 'bottle' sau 'can'
SELECT * FROM Products WHERE CONTAINS(Description, 'bottle AND can') = cauta tot ce contine 'bottle' si 'can'
SELECT * FROM Products WHERE CONTAINS(Description, 'bottle NEAR can') = cauta tot ce contine 'bottle' linga 'can'
SELECT * FROM Products WHERE CONTAINS(Description,' FORMSOF (INFLECTIONAL, dry) ') = cauta inregistrarile care contin ori forma a lui 'dry': dried, drying, dries, etc.
Posibilitatile de cautare fulltext al SQL Server sint mai avansate decit cele de la MySQL. Acest subiect nu este nici pe departe perfect prezentat aici, insa alte detalii si exemple de utilizare a cautarii fulltext cu MS SQL Server o sa fie prezentat intr-un obiect urmator. |
|
|
|
|
|
|
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
|
|