1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu công nghệ động cơ tìm kiếm của lucene xây dựng ứng dụng minh họa

40 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu công nghệ động cơ tìm kiếm của Lucene xây dựng ứng dụng minh họa
Người hướng dẫn PTS. Do Hoang Cuong
Trường học Trường Đại học Dhồng Nguyên Tính Học TP.HCM
Chuyên ngành Công nghệ Thông tin
Thể loại đề tài
Năm xuất bản 2011
Thành phố Hồ Chí Minh
Định dạng
Số trang 40
Dung lượng 17,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DS tich hQ'p Lucene vao tmg d\lng, nguo'i Do Lucene 1a m9t thu vi~n Java, no cho phep danh chi m\lc va tim kiSm t~t cathong tin du6'i d~ng van ban, day 1a uu diSm khiSn no duQ'c cai d~t

Trang 1

, ~ ~ ~

-~

TP.HO CHi MINH-2011

SINH VIEN THl/C HIJtN:

LEHOA.NG vO

" i

• _ IfI~.

GIANG VIEN HU'ONG DAN:

DO HoANG CUONG

Trang 2

Chung em xin gll'i lai ciun an chan thanh d~n th~y D6 Hoang Cuang da

kinh nghi~m cho qua trinh nghien cU'U,t?O diSu ki~n cho chung em hoanthanh t6t dS tai

Chung em cung xin chan thanh cam an quy Th~y Co trong Khoa CNTT

da t~n tinh giang d?y, trang bi cho chung em nhu'ng ki~n thu'c c~n thi~t trongsu6t qua trinh hQCt~p va nghien ctl'll t?i Khoa

M~c du da c6 g~ng hoan thanh dS tai v6"it~t ca sv n6 l\l'c cua ban than,nhung d~ tai se ch~c ch~n khong tranh kh6i nhung thi~u sot va Iwn ch~ nh~t

nhom chung em hoan thi~n d~ tai

MQt l~n nu'a, chung em xin chan thanh cam an!

Tp H6 Chi Minh, 12/05/2011Sinh vien Khoa CNTT th\l'c hi~n

Trang 3

1.3 HIEU NHONG L6p LAp CHi Ml)C CAN BAN 8

1.4.1 CI-IUYENOOI VAN BAN SANG CHUO! 10

1.6.5 B9 phtin tich: StandardAnalyzer 14

1.8 pHAN M6 RONG: MOT SO BO CHUYEN 801 VAN BAN 14

CHU'ONG 3 : He: THONG HO TRO TiM KIEM HO SO CONG vAN 25

Trang 4

3.5.6 Man hinh tim ki~m tren chi nwc 35 3.5.7 Man hinh xem highlight van bim 36

Trang 5

Ph~n mo d~u Trang 4

pHAN MO DAu.

Khi noi t6'i "tim kiSm", ta thucmg nghT ngay dSn cac dich vt,l n6i tiSng nhuGoogle Search, Yahoo! Search hay MSN Search, v,v Internet chua h~u nhu t~t

ca nhung thong tin lien quan t6'i m9i lInh V\l'C,m9i ng5 ngach trong cUQc s6ng.Nhung no r~t rQng, rQng dSn m(rc g~n nhu khong ai co thS kiSm soM dugc Di~n

luu trli' trong hang tri~u may chu d?t kh~p nO'itren toan thS gio'i

C6 thS vi internet ngay nay nhu mQt biSn dli' li~u kh6ng 16, v6'i muon vannhu'ng vien ng9c qui n~m giu'a cac h~t s~n Trong khi do, nhu c~u khai thac trongkho tai li~u kh6ng 16 nay dS tim kiSm nhli'ng thong tin c~n thiSt dang la nhu c~uthucmg ngay va thiSt th\l'c cua nguo'i sir dt,lng Va mQt trong nhli'ng v~n dS bucthiSt nh~t cua cong ngh~ hi~n nay la kha nang tim chinh xac thong tin h9 c~ntrong kho tai li~u - "dai cat tim vang", khai thac ngu6n tai nguyen nay mQt cachhgp Ii, dem l~i 19i ich t6t nh~t cho con nguo'i Hay la nhli'ng tai nguyen t?P tin, taili~u van ban, h6 sO'cong van cua ca nhan, t6 ch(rc ngay mQt ch6ng ch~t, luu trli'ngay cang tro nen kh6ng 16 V?y, lam sao dS con nguo'i tim kiSm thong tin, taili~u mQt cach nhanh chong va chinh xac trong nhli'ng d6ng t?P tin, Uii li~u kh6ng

16 d6 dugc luu trli' h6n dQn trong rna cung dem l~i hi~u qua trong cong vi~c

Lam thS nao dS pht,lc vt,l cho nhu c~u tim kiSm r~t c~n thiSt neu tren? Hi~nnay chung ta da co cac cong Ct,lh6 trg tim kiSm(may tim kiSm) ho~t dQng hi~u

tim kiSm nay la nhli'ng san ph~m thuO'ng m~i va ma ngu6n dugc gili' bi m?t

Desktop da dap ung ph~n nao nhu c~u cua nguo'i dung DS co dugc ung dt,lngnhu may tim kiSm, chung ta phai viSt chuO'ng trinh sir dt,lng cac thu vi~n h6 trgchu'c nang tim kiSm cQng v6'i nhiSu thu?t toan

Trang 6

Phftn mc)'dftu Trang 5

Trong bai bao cao nay chung em xin gio'i thi~u nhfrng nghien cu'u vS mangu6n mo' Lucene va chi ra cach thuc ung dt,mg no trong h~ th6ng tim kiSm

kiSm Lucene cho phep xu Iy cac van ban dftu vao 0' d~ng van ban (text) d~ t~o rat~p chi ml;lc va cung c~p phuO'ng thuc tim kiSm tren t~p chi ml;lc do Vi Ia mangu6n mo, nen no cho phep nguo'i dung kS thu'a va phM tri~n d~ phu hqp v6'inhiSu ng6n ngfr khac nhau Chung em tich hqp Lucene vao xay dVng m9t h~th6ng h6 tr9' tim kiSm tren cac van ban Iuu trC1',116sa c6ng van,

1.2 MOl TRUONG NGHlEN C(J'U.

Trang 7

ChuO'ng 1.PhAn l?p chi m\lc

CHUaNG 1 : pHAN L~P CHi Ml)C.

Hinh 1.1: L?p chi m\lc cho tai li~u, van bim va h6 tr9' tim kiSm

1.1 TONG QUAN DE TAL

hi~u nang cao va mSm deo Truy v~n thong tin lien quan dSn qua tri11h tim kiSmthong tin n~m trong tai li~u ho~c sieu dli' li~u mo til tai li~u Lucene cho phepthem tinh nang tim kiSm vao trong ung d\lng No dUQ'c ph:it tri~n bo'i DoughCutting vao nam 1998, va b~t dAu du9'c su d\lng ttl' nam 2000 No la m9t dv an

ma ngu6n mo, miSn phi va 6n dinh, du9'C cai d~t b~ng ngon ngli' Java, va la m9t

Trang 8

Chuang 1 Ph~n 1?p chi m\lc Trang 7

Apache Software License Do do, trong nhung nam gfin day, Lucene la thu vi~n

IR ph6 biSn nh~t duQ'c Sll'd\lng.

Lucene cung c~p m9t giao di~n l?p trinh ling dlfng (API) don gian nhungm~nh me, khong doi hoi nguo'i dung phai co qua nhiSu kiSn thtl'c vS k9 thu?t timkiSm toan van ban(full text search) DS tich hQ'p Lucene vao tmg d\lng, nguo'i

Do Lucene 1a m9t thu vi~n Java, no cho phep danh chi m\lc va tim kiSm t~t cathong tin du6'i d~ng van ban, day 1a uu diSm khiSn no duQ'c cai d~t trong vo sf>

thiSt kS nho gQn, dan gian, cho phep nhung tren nhiSu moi truong nhu web vadesktop

Dlf'a tren nhfi'ng tinh nang m~nh me, nhom chung em da tiSn hanh tim hiSu

thu vi~n Lucene va xay dVng m9t ph~n mSm nho, h6 trQ' quan ly h6 sa cong van

cho m9t cong ty hay t6 chu'c Sau day, chung em se gi6'i thi~u nhung tinh nangn6i b?t nh~t cua Lucene, cung h~ th6ng h6 trQ' quan ly h6 sa cong van cho m9tcong ty hay t6 chtrc

1.2 L~P CHi Mt)C vA st)'QUAN TRQNG.

Gia suonguoi dung cfin tim kiSm m9t s6 1uqng 16'n cac t?P tin, va nguoidung mu6n tim nhung t?P tin dfi' li~u do khi chi c~n thong qua m9t til ho~c nhom

cach tiSp c?n t6n nhiSu tho'i gian la quet qua m6i t?P tin duoli~u dS tim tu' ho~ccac 'c\lm til tren Cach tiSp c?n nay co m9t s6 sai sot, r5 rang nh~t 1a no khong co

du quy mo dS lam vi~c v6'i nhung t?P tin co dung lUQ'ng16'n.Nhung, Lucene lamduqc diSu nay DS tim kiSm sf> luqng 16'n van ban m9t cach nhanh chong, d~utien ngU<Ji dung phai l?p chi m\lc va chuySn tai li~u sang m9t dinh d~ng chophep tim kiSm nhanh chong dS m\lc dich 10~i bo qua trinh quet tu~n tv ch?m rai

tIm duqc gQi la index

Trang 9

Chuang 1 Ph~n l~p chi m\lc Trang 8

C6 th~ suy ngh! chi m\lc nhu la mQt c~u truc du' li~u cho phep nhanhch6ng truy c~p dli' li~u ben trong

minh nhung kh6ng dQc va tim ki~m tai li~u duqc

Lap Directory d~i di~n cho nai luu tru' c~u truc chi m\lc cua Lucene N6 lamQt lap ao cho phep cac lap con k~ thu'a luu tru' chi m\lc Lucene dil xay dVng

sach cac t~p tin tren h~ th6ng file Lap nay nh~l11 m\lc dich luu trli' dli' li~u chinw~ tren rna d~ cung c~p cho vi~c tim ki~m dS dang

l~p chi m\lc nhli'ng dli' li~u sau khi l~p chi m\lc chi duqc luu trli' tren bQ nh6' t~l11

c~n l~p chi m\lc va luu tru' tren h~ th6ng Dli' li~u se m~t di n~u ung dVng bi giaih~n va mQi vi~c phai b~t d~u l~i tu' d~u

Tru6'c l<hi du' li~u van ban duqc l~p chi l11\lC,dli' li~u nay phai di qua l6'p

ra thanh nhi~u do~n van ban nh6 c~n thi~t, d6ng thai lo~i b6 nhli'ng do~n van bankh6ng c~n thi~t di N~u nQi dung van ban duqc I~p chi m\lc kh6ng phai la vanban text thi d~u tien van ban d6 se duqc chuy~n sang van ban text L6'p Analyzer

la mQt l6'p thu~n ao, nhung Lucene dil t~o nen nhi~u l6'p con thvc nh~m thvc thil6p nay MQt vai trong s6 chung c6 kha nang xu' Iy va lo~i b6 cac tu' kh6ng c~n

Trang 10

Chuang 1 Phftn l?p chi m\lc Trang 9

Vi~t nhu ai, n9, d6, kia, dfm ), mQt vai c6 kha nang chuy~n van ban thanh cac

ky tv thucmg d~ qua t1'inh tim kiSm diSn ra t6t han va v.v L6"p Analyzer la mQtphftn quan tr9ng cua Lucene, n6 duQ'c Stl' d\lng nhi~u han nhfrng cach thuc trich19c cher thong thuong khac

L6"p Document d~i di~n cho mQt t?P cac Field Nguo'i dung c6 th~ hi~u n6nhu la mQt tai li~u ao - mQt do~n dfr li~u nhu trang web, nhu tin nh~n di~n ttl',hay 111Qtt?P tin chu6i - 111ata c6 th~ ti111kiSm thong tin trong tho'i gian sau d6.Cac truo'ng cua dfr li~u d~i di~n cho dfr li~u ho?c sieu dfr li~u lien kSt v6"i tai li~ud6 Ngu6n dfr li~u d6 thi khong lien quan gi dSn Lucene ca Nhfrng sieu du' li~u

va phan tach thanh tu'ng tru'o'ng dfr li~u rieng

duQ'c g9i la Field M6i field chiu trach nhi~111v~ 111Qtmanh nho thong tin cua tai

Lucene c6 4 loai field khac nhau ma nguo'i dung c6 th~ chon:

Keyword: Khong duQ'c phan tich, nhung duQ'c chi m\lc va luu trfr trongchi 111\lC mQt cach nguyen van Ki~u nay thi phu hQ'p v6"i nhfrng 11nhVlfCcftn luutrfr van ban mQt cach nguyen v~n, nhu la URLs, duo'ng d~n file h~ th6ng, ngaythang, ten nguo'i, s6 bao 111?txa hQi, s6 di~n tho~i,

nhung c6 nhLing gia tri nguo'i dung khong th~ tim kiS111111Qtcach trlfc tiSp duQ'c

UnStored: NguQ'c l~i v6"i Unlndexed Lo~i nay se phan tich va l?p chi

111\lCnhung khong luu trLi'chi m\lc N6 thich hQ'p cho vi~c l?p chi m\lc cho nhfrng

Trang 11

Chuang 1 Ph~n l~p chi m\lc Trang 10

t~p tin van bim c6 kfch thuac l6n ma khong c~n phai l~y thong tin g6c, nhu ph~nthan cua trang web, ,

Text: DUQ'c phan tfch va duQ'C l~p chi m\lc V6i lo?i nay thi chung ta c6

thS thvc hi~n tim ki~m sau khi I~p chi m\lc nhung phai chu y kfch thu6c cuatruang N~u dCi'li~u l~p chi m\lc la chu6i thi n6 cCing se duQ'c luu trCi'

chuySn d6i dCi'li~u d6 thanh nhCi'ng lu6ng van ban text, dinh d?ng ma Lucene c6thS xu'ly

Gia su nguc)'i dung c~n l~p chi m\lc mQt t~p cac van ban PDF DS chu~n bicho qua trinh l~p chi m\lc nay, nguai dung phai tim cach nao d6 dS trich xu~tthong tin chu6i text tu tai li~u PDF d6 Trong Lucene khong c6 phuang thuc nao

d6i m~t v6i tinh hu6ng la phai l~p chi m\lc cho van ban Microsoft Word va nhi~utai li~u khac ma khong phai la van ban text thong thuang Ngay ca lam vi~c v6i

tai li~u l~p chi nwc nh~m m\lc dfch tranh nhCi'ngph~n tu khong c~n thi~t nhu cacph~n tu' XML hay cac the tag HTML

Trang 12

Chuang 1 Ph~n l?p chi m\lc

MS Worddoc

Figure 2.1 Indexing with Lucene breaks down into three main operations: converting data

to text, analyzing it, and saving it to the index.

Hinh 1.2: Tien trinh l?p chi m\lc

1.4.2 pHAN TicH

MQt khi nguc)'i dung dachuc1n bi dfr li~u cho vi~c l?p chi m\lc va t~o d6i

V?y, truo'c tien Lucene se phfm tich no dS lam cho no phu hQ'p han trong vi~c l?pchi nwc US lam nhu V?y, no chia tach van ban thanh nhiSu ph~n, nhiSu the vathvc hi~n mQt s6 tu)' chQn tren chung.Vi d\l, the co thS duQ'c dua vS chfr thucmg

Trang 13

Chuang 1 Ph~n l?p chi m\lc Trang 12

qua trinh phan tich nay no cung lo~i bo nhfi"ng the khong mang nghla, nhu nhfrng

trong ti~ng Vi~t Tuang tv nhu V?y, phan tich nhung the d~u van va giam di dQ

Ian la vi~c thong thucmg ma lap phan tich co th~ lam Buac nay va cung quan

trQng va duqc gQi la phan tich d~u vao

Sau khi du' li~u d~u vao dUQ'c phan tfch, no dft s~n sang cho vi~c l?p chim\lc Lucene luu tru' dfr li~u d~u van nay trong mQt cfiu truc dUQ'cgQi la invertedindex cfiu truc du' li~u nay t~o nen hi~u qua trong vi~c sit' d\lng khong gian rnatrong qua trinh tim ki~m nhu'ng ttl' khoa nhanh chong Di~u gi lam cho cfiu trucnay dao nguqc nhu v?y Do la no su d\lng nhu'ng the trfch xufit til du' li~u d~uvan nhu nhu'ng khoa tim ki~m thay cho vi~c xu I;' ngay tren chinh tai li~u vanban g6c Theo mQt khia c~nh khac, thay vi phai c6 g~ng tra lai cau hoi: nhung tu'ngu nao duqc luu tru' trong tai li~u? thi cfiu truc nay cung cfip mQt cau tra lo'inhanh: nhung tai li~u nao co luu tru ttl' ngfr X nay! C6t 15i cua tfit ca cong C\l timki~m hi~n nay la su' d\lng cfiu truc inverted index nay Di~u nay lam cho vi~c timki~m tai li~u tra nen nhanh chong va chinh xac 0' milc co th~

1.5 TIM HIED BO PHAN TieH

BQ phan tich chi lam mQt cong vi~c duy nhfit, no duqc xem nhu 1TIQtcaimay c~t chu' cao cfip La d6i tuqng se dQc van ban thanh dong va c~t dong van

Token se t6 chilc luu trfr k~t qua phan tich nhu nhfrng tu' rieng bi~t Day la mQtban tom t~t ng~n gQn v~ nhu'ng gi mQt bQ phan tich co th~ lam va lam th~ nao noanh huang d~n chi s6 van ban day du MQt bQ phan tich t6t khong chi co vi~c c~tcac van ban thanh nhfrng ttl' rieng Ie, ma no can thvc hi~n vi~c chuy~n d6i vanban,text d~ lam cho no phu hqp han vai vi~c l?p chi m\lc MQt cach chuy~n d6idan gian ma bQ phan tfch co th~ lam la dua mQi thu' v~ chfr thuong khi no di qua,

Trang 14

Chuang 1 Phfin l~p chi m\lc Trang 13

cach do chi s6 cua chung ta se khong can phan bi~t chl1' hoa thuo'ng nl1'a Trong

vi~c chuySn d6i van ban thanh chl1' thuong, nSu chung ta dua vao "MEG" thi bl)phan tich se cho ra k~t qua la "meo", va trong van ban ttl' khoci "meo" se lien k~t

phan tich dS c~t ttl' theo khoang tr~ng, thi sau do bl) phan Hch se chuySn d6i t~t

ca thanh chu' thucmg

Chu6i ngu6n:

Con Meo n~m trong cai Non

K@tqua sau khi phan Hch:

[con] [meo] [n~m] [trong] [cai] [non.]

Lucene co r~t nhiSu bl) phan tich da du9'c xay dVng s~n Trong m6i cai coml)t cong d\lng khac nhau, duai day la ml)t s6 bl) phan Hch diSn hinh:

Xu' ly nhCi'ngthvc thS text thanh nhl1'ng the dan Bl) phan tich nay du9'c sU'd\lng cho nhl1'ng dl1'li~u nhu la ma s6 id, ma s6 vung, hay ten san ph~m

Phan tich chu6i text dVa vao ky tv khoang tr~ng

Phan chia van ban t~i cac ky tv khong mang nghla, d6i sang chl1' thuong,lo~i b6 nhu'ng til "stopword"

thong thuang, ch~ng h~n nhu the (ti@ngAnh) ho~c va (ti@ng Vi~t), va vi th@ta cothS cho r~ng no mang y nghla tim ki~m la va cung it khi dung ml)t minh

Trang 15

Chuang 1 Ph~n l?p chi mvc Trang 14

D6i vai ti~ng Anh, be) til stop word co th~ dinh nghla g6m nhung til nhu la:

"a" "an", ,"and","are","as" "at" "be" "but", , , ,"by" "for", ,"if' ,"in", "into","is",

"it", "no", "not", "of' , "on", "or","such" "that", , "the", "their" , "then" , "there" ,

"these" ,"they" ,"this" "to" "was" "will", , , ,"with"

dinh nghla ra be) tu' stopword cua minh

No phan chia van ban dva vao nhung cu phap duQ'c dinh nghla s~n ho~c tvdinh nghla No cling d6i van ban thanh chu thuo'l1g va lo~i b6 cac "stopword".Be) phan tich Standard Analyzer h~u nhu co cac cO'ch~ cua cac be) phan tich truac

do

1.7 BQ PHAN TICH NAO NEN SU DVNG.

Chung ta dff th~y duQ'c st;r khac bi~t dang k~ trong m6i cach ma be) phantich dff lam Lam th~ nao d~ co th~ chQn me)t be) phan tich hQ'p ly cho ung dVng?Cau tra lo'i co th~ khi~n chung ta phai ng~c nhien: H~u h~t cac ung dVng khongsuodVng h~t t~t ca cac be) phan tich Do do, d6i vai cac ung dVng nguo'i dung co

thong nh~t S6 cac be) phan tich can l~i xem ra qua dun gian d6i vai ung dVngcua nguo'i dung Nhung cac be) phan tich nay l~i huu dVng trong cac truong hQ'pthi nghi~m ki~m tra cua Lucene

D~ giup nguo'i dung th~y duQ'c cach chuy~n d6i va l?p chi mvc cho nhung

nguO'i dung co th~ dung no d~ l?p chi mvc cho nhung tai li~u thuo'ng th~y trongmoi truO'ng van phong

Trang 16

Chuang 1 Ph fin l?p chi m\lc Trang 15

th6ng t?P tin, boi vi chung ta co th~ dua nhung th~ hi~n t?P tin VaG InputStreamb~ng cach dung ham t~o FilelnputStream

pu~lic i~~er:ace Cocume~t~a~dler {

.I~' *

'* Crea ~es a L.;lce; e L:oc'J.rt.e:: t frort~ a::: I:::;), l~3:~ear.~.

* T~is met~od ca~ re:ur~ <code>~all<lcode>.

*/

T~t ca nhung thl,l'c thi cua d6i tuqng handler nay d~u tra v~ m(>t thS hi~nDocument cua Lucene vai m(>t ho~c nhi~u Field Bo'i vi nhung ki~u tai li~u khacnhau luu tri}' trang nhu'ng sieu dfr li~u khac nhau, nhung gia trj tra v~ thi chi la

HTML thong thuong thi co tieu d~, trong khi do thi tai li~u XML khong co Vi

vi~c theo nhu khuon m~u duai day:

Trang 17

Ch~'O'ng 1 Ph~n l~p chi m\lc Trang 16

,

t1'inh _ L~y lu6ng dfi' li~u vao.

1 Thvc hi~n tien

InputSt1'eam _ DQc va chuySn d6i lu6ng dCi'li~u.

Trich xu~t chu6i ttl' lu6ng dCi'li~u.

2 T~o d6i tUQ'ng _ T~o mQt thS hi~n Document cua Lucene.

Document cua Lucene _ T~o mQt t~p cac Fields vo'i nhCi'ng gia t1'i chu6i

duQ'c trich xu~t til InputSt1'eam.

_Them nhfi'ng Fields do vao trong d6i tUQ'ng Document.

1.8.3 L~p chi m\lc cho t~p tin XML.

DS l~p duQ'c chi m\lc cho nhfi'ng t~p tin XML thi d~u c~n phai lam do la chung ta phai dtmg d~n ham API cua SAX Sau d6 la l~p chi m\lc nhCi'ng do~n van ban v6'i Lucene Do~n van ban du6'i day la mQt do~n XML thS hi~n nhfi'ng

d6i tw;mg dQc l~p cua quySn sach danh b~ dia chi M\lc tieu cu6i cling cua chung

ta la t~o 1'a quySn sach tim ki~m dja chi ma chung ta co thS tim th~y cac m\lc

tuang ung khi Slr d\lng cu phap ti~m ki~m thong thucmg.

Trang 18

Chuong 1 Pheln l?p chi m\lc Trang 17

Chuy~n va l?p chi m\lc v6'i SAX

H~un API don gi~m cho XML dinh nghia la nhu'ng giao di~n hu6'ng Sl)'ki~n

ma trong d6 cac parser g9i d~n m<)t s6 phuong th(l'Cduqc cung cfip boi nguai g9ikhi vi~c chuy~n d6i di~n ra Nhfrng Sl)'ki~n nay g6m c6 Sl)'ki~n b~t delu, k~t thuccua tai li~u ho~c nhfrng phfm tu' cua chung, 16i chuy~n d6i, V.v

Sau day la vi d\l trich xufit chu6i tll' tai li~u XML, sa d\lng Xerces2 JavaParser Xerces2 Java Parser duqc phcit tri~n trong dl)' an Apache XML va ngu(Ji

thi phien bim 2.0.1 cua SAX API Tuy day kh6ng phai la phuong phap chuy~nd6i tai li~u XML nhanh nhfit c6 th~, nhung n6 g6p pheln them cho Sl)'phong phutrong vi~c sa d\lng b<)chuy~n d6i Java XML

p'~::lic class 5I! X:'G.1L::a::dler

e x:.e~~_ds I:e: a ' II :.:-:a::dl 0£: 1:" i:"t~pl e:r.e:":.: S LOC'J.::,;e::: ::a::dl e~

privace S~~i~g3~:fer eleme~tB~ffer

private ~as~Map a:trib~teMap;

~riva~e Loc~~e~: doc;

p'J.clic Loc trr.e:::: ge:.r::oc;Jrr,e=-~: (I:- pu :.Strearr is)

:~rows Coc~me~:~a~dlerExceptio~ {

o Implement DocumentHandler interface; start parser

S]-~?a'1:.-s~rF ac:.ory spf = 5JtZ?arse.:"Fac :ory ::e~.\~I::s:.a.::ce() ;

try {

51ili?arserparser spf.~ewSAX?arSe~();

parser.parse(is, ~~is);

ca:c~ (IOExcep:io~ e) {

t~row ~ew Loc~me~c;:aidlerExcepLio~(

It Ca:,~::o: par se Xl'lIL doc UIT.en: II,e) ;

ca=c~ (?arserCo~!ig~ra:io~Excep=io~ e)

~~row ~ew Loc~me~:~a~dlerExcepcio~(

llCa~~::o:.parse XI:IL docurne:' ;t.t l, e);

cate:: (SlcXExceptio::e) {

II Ca:- ::o ~ pa:r- se Xl'o'IL doc' lme:1t tl ( e);

re: :.:r:"_cae;

\

p~blic void s~artroc~me~~()

doc = ~ew Coc~me~:(j;

8 Called when parsing begins

Trang 19

ChuO'ng 1 Phfin l~p chi lTI\lC Trang 18

p.l;;lic void s:ar:.Eleme,.:' (S:.ri;:g <.In, S:.ri;".9" localNarr.e, 8 Beginning o(new

S:.ri:-.g qNarr.e, J\::ri;;<.l:es a::s) :::ro'.'!s SI,XExcep:io;: { / XMl element eleme~~3uf~e~.se:Le~g:t(C) ;

a~~ric~~eMap,clear\) ;

if (a::.s.ge:.Le~g:.~() > :)

actri~~~eMap = ~ew ~as~Map();

~or (i::c i = C; i < a~cs.getLe~gc~(); i++)

a: :ric'J.:eI"lap p'~t (at ':5 getQ,Narr.e( i :1 ( a :':'5 ge:.\lal'~e (i) ) ;

II called ~~e~ cda~a is :o~~d

pu;;lic void c;:arac::ers(c::ar[] tex:., i,x s:.a!':" i::: le::g:.::-.) { 0

Append element contents

to elementBuHer

1/ called at eleme~: e~d

p'J.:Cl i C '\lOid e::dE 1 er:le~:.: (' 5 ':1" i ~:g J.l:" i, 3: r i ~.g local !\Ja:t'~e, S:.:r i :,:g q)J art.€:) 0:.::-.rov:,rs S"r~Y Excep:.io:.~ (.

doc add ( Field Kejrl.\tord (qNarne t elerrte::.tB'J f :er :.oSt.r i::g ( ) :' ) ;

p'; lclic sc.a:i c ~]oid rnai:: (Str i~:g args (j) :.~:ro':}s Excep:'lo~.

SAXXML~a~dler ~a~dler = ~ew SJ\XYJ1L~a~dler();

J::oc<.lme,.:doc = ;-,a:,.dler ge :J::oc'.lme:-x(

::ew FileI~pu:3cream(~ew File(args[Cj)));

Syscem.ou:.pri~tl~idocj ;

Trang 20

Chuang 1 Phfin l~p chi m\lc Trang 19

hi~n tho'i nay

Di~n giai nghTa trong do~n code tren:

tugng XML

chuy6n d6i T~o mQt d6i tugng Docuement Lucene m6'i

phfin tu XML m6'i dugc tim th~y Tru6'c hSt, chung ta se xoa tr~ng

tru6'c do

khi bQ chuy6n d6i thvc hi~n qua trinh dong cac the cua phfin tu' XML hi~nt~i

cua Lucene la nhu thS nao va tiSn trinh d6 thvc hi~n mQt tai li~u van ban Nguo'i

Ngày đăng: 01/09/2023, 22:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN