You are on page 1of 21

FULL TEXT SEARCH L IM U

Hi n nay, cng ngh thng tin c xem l ngnh m i nh n c a cc qu c gia, c bi t l cc qu c gia ang pht tri n, ti n hnh cng nghi p ho v hi n i ho nh n c ta. S bng n thng tin v s pht tri n m nh m c a cng ngh k thu t s , yu c u mu n pht tri n th ph i tin h c ho vo cc ngnh, cc l nh v c. C s d li u c ng c vai tr trong cng ngh thng tin. Hi n nay con ng i pht tri n c s d li u x l thng tin n gi n h n. Tm ki m trong c s d li u l m t ch c n ng quan tr ng, n gip ng i dng c th tm ki m thng tin c n thi t nhanh h n. tm hi u v tm ki m nng cao trong c s d li u, nhm chng em ch n ti ti u lu n: tm hi u Full Text Search lm ti c a mnh. Tm ki m ton v n Full Text Search(FTS) gip vi c tm ki m tr nn d dng h n. Chng em xin c m n c L Th Thu H thnh ti ny. ng h ng d n t n tnh nhm em hon

M c d c nhi u c g ng nh ng nhm em khng trnh kh i nh ng thi u st, h n ch v ki n th c. v v y r t mong s ng gp c a cc th y c bi ti u lu n chng em c hon ch nh h n. Chng em xin chn thnh c m n! H ng Yn, ngy 20 thng 11 n m 2010. Nhm sinh vin th c hi n Tr ng Th Tuy t Nguy n Th Hoa

Nhm 11_L p TK6_NE

Page 1

FULL TEXT SEARCH

M CL C

L IM

U ................................................................................................................. 1

M C L C ....................................................................................................................... 2 N I DUNG ..................................................................................................................... 3 1. 2. 3. T ng quan v Full Text Search ........................................................................... 3 Gi i Thi u Full-Text Search (FTS) ..................................................................... 3 C u Trc Tm Ki m Theo Full-Text Search ........................................................ 5 3.1 Thnh Ph n C a FTS ....................................................................................... 6 3.2 C ch ho t 4. ng c a FTS ............................................................................... 7 C u Hnh Full-Text Catalog (FTC) ..................................................................... 8 4.1 Cch t o FullTextCatalog v t o FullTextIndex ............................................... 9 4.2 Xa FullText Catalog v FullTextIndex ......................................................... 12 5. S d ng hm trong cu truy v n ........................................................................ 13 5.1 Hm CONTAINS .......................................................................................... 13 5.2 Hm Freetext ................................................................................................. 17 5.3 Hm CONTAINSTABLE .............................................................................. 18 5.4 Hm FREETEXTTABLE .............................................................................. 18

Nhm 11_L p TK6_NE

Page 2

FULL TEXT SEARCH

N I DUNG
1. T ng quan v Full Text Search
Microsoft SQL gi i thi u ch c n ng Full-Text search (FTS)cho php tm ki m k t , chu i, c m t trong c s d li u thay v tm ki m trn t ng c t d li u c a Table. Cc thng tin trong cc ch m c ton v n c s d ng b i cc cng c y v n b n bin d ch ton v n cc truy v n c th nhanh chng tm ki m m t b ng cc t ho c s k t h p c a t y cc v n b n ch m c l u tr thng tin v nh ng t c ngh a v v tr c a h trong vng m t ho c nhi u c t c a m t b ng c s d li u. M t ch m c ton v n l m t d ng c bi t c a ch s ch c n ng d a trn th c xy d ng v duy tr b i cc cng c y v n b n cho SQL Server. Qu trnh xy d ng m t ch s ton v n khc v i xy d ng cc lo i ch s . Thay v xy d ng m t c u trc cy d a trn gi tr c l u tr trong m t hng c th , cc Full-Text xy d ng m t, o ng c c u trc, ch s nn x p ch ng ln nhau d a trn cc th c nhn t v n b n s c l p ch m c. i v i m t c s d li u m i SQL 2008, cc ton v n l m t i t ng o m khng thu c v b t k filegroup, n ch l m t khi ni m logic dng ch m t nhm cc ch m c ton v n. Full-Text Search Upgrade . Tuy nhin, trong khi nng c p c a SQL Server 2000 ho c c s d li u SQL Server 2005, b t k v n b n y danh m c ch a cc t p tin d li u, m t filegroup m i c t o ra; cho bi t thm thng tin. Ch c m t ch m c ton v n l cho php m i b ng. i v i m t ch m c ton v n ph i c t o ra trn m t b ng, cc b ng ph i c m t, c t nonnull n duy nh t. Ta c th xy d ng m t ch s v n b n y trn cc c t c ki u char, NCHAR varchar, nvarchar, text, ntext, image, xml, varbinary, v varbinary (max) c th c l p ch m c ton v n tm ki m. T o m t ch m c v n b n y trn m t c t c ki u d li u l varbinary, varbinary (max), image, ho c xml yu c u xc nh m t c t ki u. M t c t lo i l m t c t trong b ng, trong chng ta l u tr cc t p tin m r ng (. Doc. Pdf,. Xls, vv) c a cc ti li u trong m i hng.

2. Gi i Thi u Full-Text Search (FTS)


Full-Text Search cho php t o ch m c m t cch uy n chuy n v nhanh chng d truy v n v i t kha trn chu i d li u trong c s d li u SQL Server. Tri v i php Nhm 11_L p TK6_NE Page 3

FULL TEXT SEARCH


ton Like m chng ta th ng dng trong m nh Where, n ch lm vi c trn ki u d li u k t , trong khi truy v n Full-Text Search th c hi n theo hnh th c tm ki m trn t hay c m t d a trn quy lu t lin quan n ngn ng . Sau y chng ta s tm hi u ki n trc tm ki m theo ch c n ng Full-Text Search, cc c u hnh c s d li u cho Full-Text Search, cc hm s d ng khi dng cu truy v n tm ki m Full-Text. N u tm t kha trong b ng d li u, chng ta th ng s d ng php ton Like v i k t % ch nh khng phn bi t chu i sau v tr c k t ang tm. Ch : C th tm th y cch c u hnh c s d li u r i khai bo v ci ki m trong t p tin Full-Text Search.sql. Ch ng h n, khai bo ton like nh sau: t d ch v tm

tm ki m tn nh cung c p trong b ng Nh cung c p v i php

V d : Khai bo php ton Like Select * from nhacungcap Where tenNCC like %MA% Go Khi th c thi pht bi u SELECT trong v d trn, c th tm th y k t qu nh hnh sau:

Hnh 1: Danh sch nh cung c p v i tn c chu i Ma. Trong tr ng h p mu n tm ki m trn nhi u c t th c th s d ng ton t AND hay OR. Ch ng h n, khai bo tm ki m trn m t c t d li u vi hai i u ki n Like nh v d sau: V d : Khai bo php ton tm ki m trn m t c t d li u v i hai c t d li u SELECT *FROM Nhacungcap Where tenNCC LIKE %YAMA OR tenNCC LIKE %Delle Go Nhm 11_L p TK6_NE Page 4

FULL TEXT SEARCH


Khi th c thi pht bi u SELECT trong v d trn, c th tm th y danh sch nh cung c p trnh by nh hnh sau:

Hnh 2: Danh sch nh cung c p Tuy nhin, c th s d ng FTS v i hm CONTAINS nh v d sau: V d : Khai bo hm CONTAINS SELECT * FROM Nhacungcap CONTAINS(tenNCC, *Yama* OR Delle); Go Khi th c thi pht bi u SELECT v i hm CONTAINS trong v d trn, c th tm th y danh sch nh cung c p trnh by nh hnh sau:

Hnh 3: Danh sch nh cung c p. lm c i u ny, chng ta c n nghin c u k thu t tm ki m v cch c u hnh d ch v Full-Text Search trong ng d ng ph n k ti p.

3. C u Trc Tm Ki m Theo Full-Text Search


FTS trong Microsoft SQL server 2005 l cng c tm ki m d li u r t m nh d a vo Microsoft Full Text Engine dnh cho c s d li u SQL Server (MSFTESQL). D ch v MSFTESQL c hai vai tr chnh l h tr ch m c theo tn (Named Indexing Support) v truy v n d li u (Query Support). Nhm 11_L p TK6_NE Page 5

FULL TEXT SEARCH


Trong , vai tr th nh t l ci t c s d li u Full-Text v khai bo ch m c cho c s d li u. vai tr th hai l x l cu truy v n v quan tm n tiu ch tm ki m c ph h p v i d li u khai bo trong c t ch nh ch m c. 3.1 Thnh Ph n C a FTS Hai thnh ph n chnh s d ng trong FTS l: The Microsoft Full Text Engine for SQL (MSFTESQL) v The Microsoft Full Text Engine Filer Daemon for SQL (MSFTEFD). 3.1.1 MSFTESQL y l thnh ph n c xy d ng d a trn k thu t Microsoft Search (MSSearch) c tch h p r t hon thi n trong Microsoft SQL Server 2005 Database Engine. D ch v MSFTESQL c ci tm c nh nh ng n ch v n hnh khi s d ng FTS. MSFTESQL ch y nh m t d ch v trong h i u hnh d i tn tham chi u l MSFTESQL, chng ta c th tm th y d ch v ny trong c s d li u Services . 3.1.2 MSFTEFD MSFTEFD bao g m ba ch c n ng sau: y B l c d li u. y B ki m sot nghi th c truy v n (Protocol handler). y B ng t t (Word breaker). Sau y l c ch ho t ng c a FTS c minh h a nh sau:

Nhm 11_L p TK6_NE

Page 6

FULL TEXT SEARCH

Hnh 4: C ch ho t 3.2 C ch ho t ng c a FTS

ng c a FTS

3.2.1 B l c d li u Nhi n v c a ch c n ng Filter l trch l c lu ng thng tin d ng Text t v n b n c l u trong c s d li u v lo i b nh ng thng tin khng thu c nh d ng ny, sau t o nh ng chu i c a v n b n cng v i thu c tnh ny m c th truy n vo cho ch c n ng ch m c. Ngoi ra, Filter cn c th trch l c thng tin d ng chu i t cc dang nh d ng v n b n nh : Micrisoft word, t p tin d ng Text. Ch ng h n, Microsoft cung c p b l c Microsoft Office Filter trch l c d li u t t p tin d ng Word, Microsoft Excel v Microsof Powerpoint. 3.2.2 B ki m sot nghi th c truy v n Trong SQL Server 2005, ch c n ng c a b ki m sot nghi th c truy v n l cho php truy c p d li u t b ng trong c s d li u c th . Nhm 11_L p TK6_NE

Page 7

FULL TEXT SEARCH


3.2.3 B ng t t B ng t t l thnh ph n c s d ng quan tm n v tr v ranh gi i c a t n t i trong lu ng g m nhi u k t khai bo trong cu truy v n hay v n b n.

4. C u Hnh Full-Text Catalog (FTC)


Sau khi chng ta tm hi u s l c cnh v n hnh c a d ch v Full-Text Search, b t u p d ng cho k thu t ny trong c s d li u, c n ch nh ty ch n Use fulltext indexing cho php c s d li u s d ng d ch v FTS khi t o c s a d li u nh hnh sau:

Hnh 5: Cho php c s d li u s d ng d ch v FTS. Trong tr ng h p c s d li u t n t i c ng c th ch n vo ty ch n Use full-text indexing b ng cch kch ho t c a s Properties, v d trong tr ng h p c s d li u Accountsystem n hnh sau:

Nhm 11_L p TK6_NE

Page 8

FULL TEXT SEARCH


Hnh6: Kch ho t c a s thu c tnh Ch : Chng ta c th s d ng th t c n i t i h th ng v FTS c a CSDL b ng cch khai bo c php nh sau: Sp_FullText_Database[@action=] Action Trong , Action ng v i hai gi tr enable hay disable. Ch ng h n khai bo s d ng d ch v FTS cho CSDL c tn QuanLySinhVien nh v d sau: V d : Khai bo th t c n i t i sp_fullText_Database Use QuanLySinhVien; Go Exec Sp_fullText_database Enable; Go Trong tr ng h p lo i b d ch v ny kh i CSDL hi n hnh th khai bo nh v d sau: V d : Khai bo th t c n i t i sp_fullText_Database Use QuanLySinhVien; Go Exec Sp_fullText_database disable; Go 4.1 Cch t o FullTextCatalog v t o FullTextIndex Sau khi CSDL hi n hnh s d ng FullTextSearch c n t o CSDL ch a thng tin cho d ch v ny b ng cch ch n ng n storage| FullText catalogs| R-click| new fulltext catalog l c. Nh p tn l QuanLySinhVienfulltextsearch trong fulltextcatalog name v ch n v tr t CSDL t i catalog location v ch nhn c a CSDL ny t i filegroup c n xc nh CSDL ny c phn bi t ch hoa v th ng ng v i ty ch n sensitive v insensitive nh hnh sau: cho php cho php hay v hi u ha d ch

Nhm 11_L p TK6_NE

Page 9

FULL TEXT SEARCH

Hnh 7: Ch n ty ch n Sensitive v Insensitive. Ngoi cch s d ng MS nh trn c th t o CSDL fulltextsearch b ng cch s d ng pht bi u CREATE FULLTEXT CATALOG v i c php nh sau: CREATE FULLTEXT CATALOG catalog_name [ ON FILEGROUP filegroup ] [ INPATH rootpath ] [ WITH <catalog_option>] [ AS DEFAULT ] [ AUTHORIZATION owner_name] < catalog_option >:: = ACCENT_SENSITIVITY = {on| off} Ch ng h n, t o CSDL FTS c tn QuanLySinhVien th khai bo nh sau: CREATE FULLTEXT CATALOG QuanLySinhVien WITH ACCENT_SENSITIVITY = off AS DEFAULT GO Ch : Khi t o m i SCDL cho d ch v FTS c th tm th y ng n general. Tuy nhin, sau khi t o thnh cng, n u kch ho t tr l i c th tm th y ba ng n general, table/ views, population schedule. Trong ng n General trnh by thng tin c a CSDL. N u mu n s d ng hm c a FTS trong khi tm ki m c n khai bo FTI (full text indexing) cho cc c t d li u trong b ng. lm i u ny c th dng 2 cch, cch th nh t l ch n vo ng n table /views v ch n tn table cho php tm ki m b ng hm c a FTS. Sau khi ch n table hay view vo danh sch bn ph i, ti p t c ch ch n b ng d li u l SinhVien r i ti p t c ch n c t diachi v lop Nhm 11_L p TK6_NE nh c t d li u. V d , Page 10

FULL TEXT SEARCH


Cch 2, ch n vo tn table| Rclick| fulltextindex| define fulltextindex m t c a s xu t hi n, nh n nt next, ch nh unique index duy nh t c a b ng d li u ng v i c t kha chnh. Sau ch nh cc c t d li u c n khai bo FTI b ng cch ch n vo tn c t. N u CSDL FTI t n t i ch c n ch n tn xu t hi n trong ph n select fulltextcatalog. Ch n nt next, ta tm th y thng tin t ng k t tr c khi t o FTI. M t table khai bo FTI th ch c n ng difine fullTextIndex s b v hi u ha khi ch n tn table| Rclick |fullTextIndex. Trong tr ng h p xa FTI ang t n t i c a b ng d li u th ch n vo ch c n ng delete FullTextIndex. L u , ngoi hai cch trn c th s d ng pht bi u create FullTextIndex b ng d li u v i c php nh sau: CREATE FULLTEXT INDEX ON table_name [ ( column_name [ TYPE COLUMN type_column_name] [LANGUAGE languare_term][n])] KEY INDEX IndexName [ ON fullText_catalog_Name] [ WITH {STOPLIST = SYSTEM, CHANGE_TRACKING { MANUAL| AUTO| OFF [ NO POPULATION]}} ] Ch ng h n, c th t o FTI cho c t makhoa c a b ng khoa, b ng cch s d ng pht bi u CREATE FULLTEXT INDEX nh v d : V d : khai bo FTI cho b ng khoa CREATE FULLTEXT INDEX ON khoa ( makhoa ) KEY INDEX pk_makhoa ON QuanLySinhVienFullTextSearch GO V d : thm c t 'NgaySinh' ch m c EXEC SinhVien ' NgaySinh ', 'COLUMN1', 'thm' EXEC SinhVien ' NgaySinh ', 'COLUMN2', 'thm' t o FTI cho

V d : start full reindexing Nhm 11_L p TK6_NE Page 11

FULL TEXT SEARCH


EXEC sp_fulltext_catalog 'YourCatalogName', 'start_full' V d : theo di ton v n v Populating exec sp_fulltext_table YourTableName, 'start_change_tracking' exec sp_fulltext_table YourTableName, 'start_background_updateindex' 4.2 . Xa FullText Catalog v FullTextIndex y Xa FullTextCatolog Lo i b m t danh m c y v n b n t c s d li u. Chng ta ph i xa t t c cc ch m c ton v n k t h p v i danh m c tr c khi xa catalog. DROP FULLTEXT CATALOG catalog_name DROP ton v n Catalog catalog_name Cc i s : catalog_name: L tn c a catalog c g b . N u catalog_name khng t n t i, Microsoft SQL Server tr v m t l i v khng th c hi n cc ho t ng th . Cc filegroup c a danh m c ton v n khng ph i c nh d u OFFLINE ho c ch c cho l nh thnh cng. Ng i dng ph i c s cho php xa trn danh m c v n b n y ho c l m t thnh vin c a database . y Xa FullTextIndex C u trc: DROP FULLTEXT INDEX ON table_name Table_name:L tn c a b ng ho c xem c l p ch m c c ch a cc ch m c ton v n ph i c lo i b . Ng i l p khng c n ph i xa t t c cc c t t ch m c ton v n tr c khi s d ng l nh DROP INDEX ton v n. Ng i s d ng ph i c s cho php ALTER trn bn ho c xem l p ch m c, ho c l m t thnh vin c a vai tr my ch qu n tr h th ng c nh, ho c database V d xa FullTextIndex trn b ng SinhVien USE QuanLySinhVien; GO DROP FULLTEXTINDEX ON SinhVien; GO

Nhm 11_L p TK6_NE

Page 12

FULL TEXT SEARCH


5. S d ng hm trong cu truy v n
Hai hm th ng c s d ng Search l CONTAINS v FREETEXT 5.1 Hm CONTAINS Hm CONTAINS Tr v m t b ng s khng, m t, ho c nhi u h n cho nh ng hng c t c ch a cc lo i k t d a trn d li u cho chnh xc ho c m (t chnh xc) ph h p v i nh ng t n v c m t , g n g i v i cc t trong m t kho ng cch nh t nh v i nhau, ho c ph h p v i tr ng . CONTAINSTABLE ch c th c tham chi u trong m nh FROM c a cu l nh SELECT nh th n l m t tn b ng thng th ng. Truy v n s d ng CONTAINSTABLE nh d ng ch a ton v n cc truy v n c tr l i gi tr lin quan x p h ng (RANK) v kha ton v n (KEY) cho m i hng. Ch c n ng CONTAINSTABLE s d ng i u ki n tm ki m t ng t nh c ch a v . Hm contains dng tm ki m m u tin trong b ng v i c t c ki u d li u l chu i ch a chnh xc hay g n kh p v i t hay nhm t do ng i dng truy n vo c c php nh sau: Contains ( {column_name |(column_list)|*} <contains_search_condition> [,language language_term] ) Trong , y Tham s column_name l c t d li u c ki u char, varchar, nvarchar, text, ntext, image, xml hay varbinary (max) v c khai bo FTI. y Tham s contains_search_condition c c u trc nh sau: <contains_search_condition>::= { <simple_term> |<prefix_term> |<generation_term> |<proximity_term> |<weighted_term> } Nhm 11_L p TK6_NE Page 13 trch l c d li u khi s d ng d ch v Full Text

FULL TEXT SEARCH


|{(<contains_search_condition>) [{<and>|<and not>|<or>}] <contains_search_condition>[n] } Chng ta c th khai bo cc ty ch n trong i u khi n tm ki m v i c php t ng t nh sau: <simple_term>::= Word | shrase < prefix_term >::= {Word* | shrase* } <generation_term>::= Formsof ( {inflectional | thesaurus}, <simple_term>[,n] ) <proximity_term>::= {<simple_term> | < prefix_term >} {{NEAR| ~} {<simple_term> | < prefix_term >} }[n] < weighted_term >::= ISABOUT ({{<simple_term> |< prefix_term > |<generation_term> } [WEIGHT( weight_ value)] } [,n] ) <and>::= {and | &} <and not>::= {and not | & !} <or>::= {or||} Nhm 11_L p TK6_NE Page 14

FULL TEXT SEARCH


Ch ng h n, c th li t k danh sch s m ph m trong b ng properties v i c t ProductNameInVietNamese c chu i l ti xch V d : khai bo s d ng hm contains Select *from products where Contains (productNameInVietNamese, ti xch ); Go Khi th c thi pht bi u cu l nh SELECT trong v d trn, c th tm th y danh sch s n ph m trnh by nh hnh sau:

Hnh 8: S n ph m ti sch TRong tr ng h p ch a m u tin ch a t hay nhm t khng phn bi t chu i ngay sau , c th s d ng k t *, t ng t nh v d sau: V d : Khai bo k t * Select*from sanpham where contains (ten, ti sch dng cho * ), go Khi th c thi pht bi u SELECT trong v d trn, c th tm th y danh sch s n ph m nh hnh sau:

Hnh 9: S m ph m ti sch dnh cho Chng ta tm hi u m t s ty ch n NEAR | ~ v php ton { AND | &} | {AND NOT |&!}|{OR||} s d ng trong m nh where. 5.1.1 Ty ch n NEAR Ty ch n ny ch ra t hay nhm t g n pha bn tri, v d khai bo wordA NEAR wordB NEAR wordC . t hay nhm t wordA c th ng g n v i t hay nhm t wordB, m t hay nhm t WordB s ng g n t hay nhm t wordC Nhm 11_L p TK6_NE Page 15

FULL TEXT SEARCH


V d : Khai bo s d ng ty ch n NEAR Select * from SinhVien where Contraint (HoTen, Phan near Hi p ); K t qu :

Hnh 10: S d ng ty ch n NEAR V d : Khai bo ty ch n Select* from sinhvien where contains (hoten, V ~ Trang );

Hnh 11: S d ng ty ch n ~ 5.1.2 Php ton Ta c th s d ng php ton AND ho c OR trong hm CONTAINS V d : khai bo php ton OR Select * From SinhVien where Contains (HoTen, Phan or Thu); K t qu :

Hnh 12: Php ton OR V d : Khai bo s d ng bi n Declare @ HoTen nvarchar(10) Set @HoTen = Phan Select *from sinhvien where Nhm 11_L p TK6_NE Page 16

FULL TEXT SEARCH


Contains(hoten,@hoten); K t qu :

Hnh 14: S d ng bi n 5.2 Hm Freetext  Hm Freetext dng tm ki m m u tin trong b ng c c t v i ki u d li u l chu i c ngh a ng hay khng c n ch a ng t ho c nhm t do ng i s d ng truy n vo. C php: FREETEXT ({column_name|(column_list)|*} freetext_string [,LANGUAGE language_term]) Trong :  Tham s column_name l c t d li u c ki u d li u char, varchar, nchar, nvahchar, text, ntext, image, xml varbinary d c khai bo FTI  Tham s freetext_string l v n b n tm ki m c tm ki m trong c t column_name.  y l ki u tm ki m theo ki u fuzzy (tm ki m m ), v d khi tm ki m v i t kha Phan t t c d li u c d ng han,Tha, s c tm th y.  Khi truy n vo m t t p cc t nh Phan Th Hi p, t t c d li u c t Phan ho c Th , s c tm th y  Full-Text c u i m khng phn bi t ti ng Vi t c d u hay khng d u V d : tm ki m sinh vin c tn Trang trong c t HoTen c a b ng SinhVien Select* from SinhVien where Freetext (Hoten, Trang ); K t qu :

Hnh 15: S d ng hm FREETEXT Nhm 11_L p TK6_NE Page 17

FULL TEXT SEARCH


5.3 Hm CONTAINSTABLE y L hm tr v m t b ng s khng, m t, ho c nhi u h n cho nh ng hng c t c ch a cc lo i k t d a trn d li u cho chnh xc ho c m (t chnh xc) ph h p v i nh ng t n v c m t , g n g i v i cc t trong m t kho ng cch nh t nh v i nhau. y CONTAINSTABLE ch c th c tham chi u trong m nh FROM c a cu l nh SELECT nh th n l m t tn b ng thng th ng. y Truy v n s d ng CONTAINSTABLE nh d ng ch a ton v n cc truy v n c tr l i gi tr lin quan x p h ng (RANK) v kha ton v n (KEY) cho m i hng. y Ch c n ng CONTAINSTABLE s d ng i u ki n tm ki m t ng t nh c ch a v.  C php: CONTAINSTABLE(table,{column_name|(column_list)|*}, <contains_search_condition> [,LANGUAGE language_term][,top_n_by_rank]). Trong :  Table: L tn c a m t b ng m c l p ch m c ton v n c th , khi truy v n, ch c m t v n b n y b ng ch m c c s c th c lin quan.  column_name: L tn c a m t ho c nhi u c t c l p ch m c ton v n tm ki m  LANGUAGE language_term L ngn ng c ngu n ti nguyn s cs d ng vi ph m t , xu t pht. Tham s ny l ty ch n v c th c quy nh nh m t s nguyn, chu i. 5.4 Hm FREETEXTTABLE y Hm ny h at ng gi ng nh v t FREETEXT nh ng c c u trc khc nhau C php : SELECT * FROM FREETEXTABLE (<b ng c n tm>,<c t c n tm >,<chu i >) y K t qu tr ra g m 1 b ng c 2 c t KEY v RANK. Trong  KEY l c t kha chnh c a b ng c n tm  RANK l c t ch a ph h p gi a dng d li u c kha l KEY so v i yu c u tm ki m. y C t RANK c gi tr t 0 -> 1000. Gi tr RANK cng cao th dng Nhm 11_L p TK6_NE Page 18

FULL TEXT SEARCH


cng ph h p v i i u ki n tm ki m. VD: Select * from FREETEXTABLE (SinhVien, HoTen, Trang) K t qu tr v nh sau: KEY SV02 SV03 RANK 12 14

Hnh 16: S d ng hm FREETEXTTABLE Trong SV02 v SV03 l kha c a b ng c n tm.

M TS

V D

USE pubs -- Create and populate a table. IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'FulltextTest') DROP TABLE FulltextTest GO CREATE TABLE FulltextTest ( article_id int IDENTITY(100,1) CONSTRAINT PK_title_id PRIMARY KEY, article_title nvarchar(200) ) GO INSERT FulltextTest (article_title) VALUES (N'Steven Buchanan has always enjoyed ice skating.') INSERT FulltextTest (article_title) VALUES (N'Elvis Stoiko: The best male figure skater') INSERT FulltextTest (article_title) VALUES (N'Steven Buchanan On Ice: Skating Reaches Tops in Public Opinion Poll') INSERT FulltextTest (article_title) VALUES (N'Last night, Steven Buchanan skated on the ice!! Skating fans cheer!') INSERT FulltextTest (article_title) VALUES (N'Ice-skating brings out the best in Nhm 11_L p TK6_NE Page 19

FULL TEXT SEARCH


Steven. Buchanan exults in first victory...') GO -- Enable full-text searching in the database. EXEC sp_fulltext_database 'enable' GO -- Create a new full-text catalog. EXEC sp_fulltext_catalog 'StevenBCatalog', 'create' GO -- Register the new table and column within it for full-text querying, -- then activate the table. EXEC sp_fulltext_table 'FulltextTest', 'create', 'StevenBCatalog', 'PK_title_id' EXEC sp_fulltext_column 'FulltextTest', 'article_title', 'add' EXEC sp_fulltext_table 'FulltextTest', 'activate' GO -- Start full population of the full-text catalog. Note that it is -- asynchronous, so delay must be built in if populating a -- large index. EXEC sp_fulltext_catalog 'StevenBCatalog', 'start_full' WHILE (SELECT fulltextcatalogproperty('StevenBCatalog', 'populatestatus')) <> 0 BEGIN WAITFOR DELAY '00:00:02' -- Check every 2 seconds to see if full-text index population is complete. CONTINUE Nhm 11_L p TK6_NE Page 20

FULL TEXT SEARCH


END GO -- Execute a full-text query against the new table. SELECT article_title FROM FulltextTest WHERE CONTAINS(article_title, ' "Steven Buchanan" AND "ice skating" ') Here is the result set: article_title -----------------------------------------------------------------------Steven Buchanan has always enjoyed ice skating. Last night, Steven Buchanan skated on the ice!! Skating fans cheer! Steven Buchanan On Ice: Skating Reaches Tops in Public Opinion Poll Ice-skating brings out the best in Steven. Buchanan exults in first victory... (4 row(s) affected)

Nhm 11_L p TK6_NE

Page 21

You might also like