Được viết bằng ngôn ngữ lập trình Java, Solr có các API RESTful XML / HTTP và JSON và các thư viện ứng dụng client cho nhiều ngôn ngữ lập trình như Java, Phyton, Ruby, C #, PHP và nhiều
Trang 1
TRƯỜNG ĐẠI HỌC KỸ THUẬT - CÔNG NGHỆ CẢN THƠ
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TÓT NGHIỆP ĐẠI HỌC
Giảng viên hướng dẫn Sinh viên thực hiện
Cần Thơ,
Trang 2
LOI CAM DOAN
LOI CAM ON
Trước hết tôi xin gửi tới thầy cô khoa Công nghệ thông tin của trường Đại học
Kỹ thuật công nghệ Cân Thơ lời chảo trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc Với sự quan tâm, day d6, chi bao tan tinh chu dao cua thay cô, đên nay tôi đã có thê hoàn thành luận văn
Và đặc biệt tôi xin được gửi lời cảm ơn chân thành và sâu sắc nhất tới cô đã quan tâm giúp đỡ, hướng dân hoan thành tốt luận văn này trong thoi gian qua
Xin được bày tỏ lòng biết ơn đến lãnh đạo, các Khoa Phòng ban chức năng đã trực tiếp và gián tiếp giúp đỡ trong suốt quá trình học tập và nghiên cứu đề tài Với điều kiện thời oIan cũng như kinh nghiệm còn hạn chế của một học viên, đề tài này không thê tránh được những thiêu sót Tôi rât mong nhận được sự chỉ bảo, đóng sóp ý kiên của các thây cô đê tôi có điều kiện bô sung, nâng cao ý thức của mình, phục vụ tôt hơn cho các dự án thực tê sau này
Tôi xin chân thành cảm ơn!
Trang 3MO DAU ioe cecccccsccccceccecsesssssesecsecsscsssesscseeseessessessectessessssesseseessessscsevecseesssesevsssesseesesees VII CHUGONG 1: TÔNG QUAN 2c 12222111211 121221 211gr He re 1 1.1 LÝ DO CHỌN ĐẼ TÀI 2s 1E 2 1211211121111 1212120 ng re 1 1.2 MỤC TIỂU VÀ PHƯƠNG PHÁP NGHIÊN CUU un cccccccccccssessesscsesseeseesveeees 1 1.3 PHAM VI NGHIEN CUU.ioeocccccecceccsccsscessessessessecseesensetssesseeseesessnsserecserenseees 2
14 BỒ CỤC HH HH TH nh n1 1g 2 CHƯƠNG2: CƠ SỞ LÝ THUYẾT 52-51 11 111121121111211E121 1011 rx0 3 2.1 MÔ TẢ HIỆN TRẠNG HỆ THÔNG -.- 2s 12E121121121211 21521 2E te 3
Trang 42.2 KỸ THUẬT FULL-TEXT SEARCH - S21 12111111111 115151 1515121151555 s52 3
23 APACHE SOLR.ooiecccceccccccsssssscscseeveseseseesssssessssesessesesescstsseseststsseststsssssiveeeseees 6 2.4 NGÔN NGỮ LAP TRINH, CONG CU VA THU VIEN SỬ DỤNG 24 CHƯƠNG3: PHÂN TÍCH THIẾT KÉ HỆ THỒNG 2-2222 S2S25255 555555255552 30 3.1 ĐẶC TẢ HỆ THÓNG Ặ S21 112111121211 1151 2111512122 Hy 30 3.2 SƠ ĐỎ USECASE Q2 T2n 1211212111 5111 2151212521 2 nn HH Hs 34 3.3 SƠ ĐỒ LỚP s22 Q20 2111221111121 121151 2121222 1T 22g12 tre 77 3.4 THIẾT KẼ CƠ SỞ DỮ LIỆU 22222 2S3215525512551 155255111551 15555 55x sxxe 78 CHƯƠNG4: XÂY DỤNG HỆ THỒNG 2S T21 1221 11152111115211 515121 Ete 85 4.1 MO TA CHUC NANG NGHIEP WU ccccccccsccccssssscssscssetestetsecevevecevseseees 85
42 CAC YEU CAU PHI CHUC NANG Loecccccccccccccccssssscsccsesesestssetsetetevsteesees 86
43 THIET KE GIAO DIEN WEBSITE 00 ccccccccsccscssescseccsecsesestessestecsesesveveseees 87
44 GIAO DIỆN CÁC CHỨC NĂNG KHÁCH HÀNG 5 22s 2n 89 4.5 GIAO DIỆN CÁC CHỨC NĂNG QUẢN TRỊ -2s222z2Ex2EEcEzczzsrez 98 4.6 _ TÍCH HỢPSOLR VÀO WEBSITE 52 S221 11221552115552151 E2 rxea 104 CHƯƠNG5: KÉT QUÁ THỰC HIỆN -55- 1 221211211211 715111 key 110 5.1 KÉT QUÁ ĐẠT ĐƯỢC 5 c TS 222121211 2121212 2 erre re 110
52 HẠNCHẾ 2.2.22222222020201 2121205 21212122 HH Hee 110 5.3 HUONG PHAT TRIEN oo occccccccccccccscscsesecsesssesssessecescssescstecstecstevevsvissessseen 110 TÀI LIỆU THAM KHAO ccccccccccsssccsessssssesessscsesvsessesssessesesesvevssesvstssesestevsvsvecstecaes 111
DANH MUC A
Hình 2 1 Hình minh họa cách Solr xử lý tài liệu và truy vẫn eeeeecseseeeeseeees 14
Hình 2 2 Kết quả khi đã thêm các field 2-2 St SE 21221211 111127111111211 1211 c1 tre rau 16
Hinh 2 3 Core chưa được lập chỉ mục ¿c1 12222121 1211121 1121122112011 81151811 12k ray 17 Hinh 2 4 Céng cu Advance REST Client 2: 2 22 2121121221312 1122111525551 12 8x re 19 Hinh 2 5 Core đã được lập chỉ mục - 2 2201121121112 111211111 12111111111 11121 1x ray 19 Hinh 2 6 Xóa documet - HH H111 1111251511111 1111111 1111112555111 1 1111551111115 1 51116 E511 s se 20 Hinh 2 7 Xóa document thành công - 2c 22 22012212221 121 1121112112211 1118115181161 1 ca 21
Hình 2 10 Kết quả khi import đữ liệu từ MySQL - 5521222211111 221211522 e2 107 Hình 2 11 Kết quả tìm kiếm 2-1 s1 E121111121E11211221 1111121212212 1n 1 ng Hee 108 Hình 2 12 Giao diện kết quả tìm kiếm - 5 5 S1 E11211211211212111121211 1121 1 xe 109
Y
Hình 3 1 Sơ đồ Use Case tông quan 2-5 s12 511111211 12112112111222 111 1 tre 34 Hình 3 2 Sơ đồ Use Case đăng ký - s5 S11 21121111122 1211120122211 ng na 35 Hình 3 3 Sơ đồ Use Case đăng nhập - 522111 121211211211 1221111211222122 221 1g 37
Hình 3 4 Sơ đồ Use Case Chat 2Á TS 912151515155 11111515111115111112111 2111 8tr 38
Trang 55 Sơ đồ Use Case tìm kiếm sản phẩm ccessesescecseesescesesnseseseees 40
6 Sơ đồ Use Case quản lý giỏ hảng 5 1 2n 112121121121 111.211 11erreg 41
7 Sơ đồ Use Case đặt 0 — 44
§ Sơ đồ Use Case quản lý đơn đặt hàng 5-52 12222111 12111152 2 ray 46
9 Sơ đồ Use Case đánh giá 5 Sc nT211211211 1221121211220 21g He ru 49
10 Sơ đỗ Use Case quản lý lịch sử xem hàng 55 5 + 222222222 xe 51
11 Sơ đồ Use Case quản lý sản phâm yêu thích - 2 2 s22 E22 2z £xe2 52
12 Sơ đỗ Use Case quản lý tài khoản - + s2 E2 15221271 1251151 xe sau 54
13 Sơ đỗ Use Case quản lý danh mục sản phâm 2 2 Ss s2 S22 2x2 58
14 Sơ đỗ Use Case quản lý sản phâm 22 21 SE 1 1E718112112122122 1 te 62
15 Sơ đỗ Use Case quản lý mã giảm giá 5s s St 2E S212 1211 xy 66
16 Sơ đỗ Use Case thống kê 52 S1 E11 1111121111121212122 11 1e ru 69
17 Sơ đỗ Use Case hỏi đáp - 5à 5 S1 1211211211211212121112121 2121 errreg 74
18 Sơ đỗ Use Case đăng xuẤt s1 1 TT 2221111212121 1221 ray 76
E01 0177 77
20 Sơ đỗ Diagram - + s22 1111212111121 11221110222 112tr ng trrrng 78
1: Minh họa phác thảo ø1ao diện c1 22 22212111211 15281112211 1551 11518111 r2 88 2: Giao diện Header và Menu - ccccccccescceccensececssssecessssecsnteseesetsesseneeees 89
4: Giao diện sản pham nỗi bật tại trang chủ - c c2: 122211122111 1121 11122111 se 89 5: Giao diện FOO€T - - Ln HH SH HS S S11 1111111551115 1 21111511111 k xxx 1 111111155 90 6: Giao diện xem chỉ tiết sản phâm ¬ 90 7: Giao diện chức năng đăng ký 2 2 2.12 11211211 111111 11211101 12181 te, 91 8: Giao diện chức năng đăng nhập - L2 02221211112 221 1122111111121 1 21111 tk 92 9: Giao diện chức năng đăng xuất 5 S11 1 1211111211 1521121221111 xe 92 10: Giao diện chat - 0000000025112 1251111111111 11c kg 255 111111111555 555 93 11: Giao diện xem thông tin tài khoản - c1 22 2222211321121 11122212812 2k2 94 12: Giao diện xem sân phâm yêu thích - - 2: 222112212231 1121 1115111551115 511 x22 95 13: Giao diện chức năng lịch sử xem hàng - 2 2222221211221 se2 96 14: GIao diện chức năng xem ø1ỏ hảng 2 2c 2222122121221 112 211525111 51 re 97 15: Giao điện tông quan -+- 1 5122111211 127111211111111121112122 111111 t tre 98 16: Giao diện danh sách danh mục sản phâm duvets seseteuteceeuansseccesceseeeeseeceetecunaenness 98 17: Giao dién thém danh muc san pham vevesetetectutsesntcausseceseecececesseessecesesecerttteesecs 99 18: Giao dién chinh stra danh muc san pham ¬ 99 19: Giao diện danh sách sản phâm ¬ 100
20: Giao điện thêm mới sản phẩm 2 + St 1E EE2E1218711117171211 12x c1 100
21: Giao diện chỉnh sửa sản phâm C0111 1111111111111 1115111111 111115 11115115111 556 55515111 xx 101 22: Giao diện danh sách đơn đặt hàng - 5 2c 22 22212221 22113211 125121 21xe2 102 23: Giao diện danh sách voucher ccc cccececcecccccccccccececccseceseseceesecesenteencess 102 24: Giao diện thêm mã p1ảm gIá - 022212211221 121 112 11181 111111111131 11182555 103 25: Giao diện chọn hình thức thống SE cc iccccccececcesccceeccseessessetesetttesseeses 103 26: Giao dién thống kê tồn kho 2 2S TS S111 11 1111111512111 55 5E HE tre, 104 27: Giao diện thống kê sản phâm bán chạy Là n 2 SH * 2H Hà 104
IV
Trang 63 Đặc ta Use Case đăng ký - L n0 121211 1112111211011 1 1011111111101 25 118111 kg 35
4 Dac ta Use Case đăng nhập - - L2 2 2211211221121 1 121111111111111121 11kg 37
5 Đặc tả se Case Chat n2 HH HT TS ng T111 111k 1 2555 1511 cxy 39
6 Đặc tả Use Case tìm kiếm sản phâm c1 110011111111 1111151111111 1 1111111561511 1111 x3 40
7 Dac ta Use Case quản lý p1ó hàng c0 2222211211 12112211221 1181115121128 41
8 Đặc tả Use Case đặt hàng Q.0 1212 H112 111211120 12H 11021 key 44
9 Đặc ta Use Case quan ly don đặt hàng 2 0 22.122 122 22t reg 46
10 Đặc tả Use Case đánh Ø14 L2 12111211211 12111111121 1011111101110 1 2112k 49
11 Đặc tả Use Case quản lý lịch sử xem hàng - 2c 2222222222 xsey 51
12 Đặc tả Use Case quản lý sản phẩm yêu thích - 5s se S c2 c2 22c xe 33
13 Dac ta Use Case quản lý tài khoản - c2 22222211121 112112 2112112211 ere 54
14 Dac ta Use Case quan ly danh muc san pham ¬ 58
15 Dac ta Use Case quan lý sản phẩm 2-52 22 2 5211111212112 21c cty 62
16 Dac ta Use Case quản lý mã pIlảm p1á - - c2 2 2222111211221 122212 66
17 Đặc tả Use Case thống kê - 0S S11 1121121111212 121110 11122 rry 69
18 Dac ta Use Case hỏi đáp - 0 2002012111121 11211011 1101 121111111 116811 kcrrrg 74
18 Đặc tả Use Case đăng xut - 5 n1 2121111221212221 12121 crrag 76
20 Mô tả cơ sở dữ liệu bảng Bloeg - L0 2201211121112 112111811181 1111 1281k xay 79
Trang 7Bảng 3 21 Mô tả cơ sở dữ liệu bảng Caft 2 12 2221121112112 1221 1171181118111 k2 79 Bang 3 22 Mô tả cơ sở dữ liệu bảng Œendr 2 2221221121112 1151151 1218115212 xe5 80 Bảng 3 23 Mô tả cơ sở dữ liệu bảng Messages L2 2n nnnnn SH He 80 Bang 3 24 Mô tả cơ sở dữ liệu bảng Order - - 5 0 122122111121 1121115231115 1 1x52 80 Bảng 3 25 Mô tả cơ sở dữ liệu bảng OrderletaIl c2 2221211121125 12xk2 81 Bảng 3 26 Mô tả cơ sở dữ liệu bảng ProductFavorIfe - c c c2 n2 2222 81 Bảng 3 27 Mô tả cơ sở dữ liệu bảng ProductRating - 2c c2: 2 2n re 81 Bảng 3 28 Mô tả cơ sở dữ liệu bảng Produet - 2 122 222112212122 1115121118212 82 Bảng 3 29 Mô tả cơ sở dữ liệu bảng QQuestion 2 2c 2211221112 212 1512121812 82 Bảng 3 30 Mô tả cơ sở dữ liệu bảng Role - L2 201221211121 111 112211111115 18115 2 te 83 Bảng 3 31 Mô tả cơ sở dữ liệu bảng ser G2 22211211121 1211111 1115111518121 tt 83 Bang 3 32 Mô tả cơ sở dữ liệu bảng, Voucher - - c2 1211211121 112112 112115512812 xe 83
MỞ ĐẦU
Trong hoạt động sản xuất, kinh doanh, thương mại điện tử đã khắng định vai trò
xúc tiến và thúc đây sự phát triển của doanh nghiệp Đối với một cửa hàng hay shop, việc quảng bá giới thiệu đến khách hàng các sản phâm mời đáp ứng được nhu cầu của khach hang sé la cần thiết Vậy phải quảng bá thế nào đó là xây dựng được một Website cho cửa hàng của mình quảng bá tất cả các chức năng của mình bán
Mỹ phẩm là một phần không thé thiếu được trong cuộc sống của phái đẹp Một diện mạo rạng rỡ tươi tắn chắc chắn sẽ gây ấn tượng tốt hơn một dung nhan nhạt nhòa, đặc biệt trong các sự kiện quan trọng phái đẹp cân tiếp xúc với nhiều người Có thể mỹ phâm trở thành chiếc chia khóa mở ra cho bạn nhiều cơ hội mới trong công việc và
cuộc sông
Trong phát triển phần mềm có rất nhiều mô hình khác nhau Tuy nhiên, mô hình
MVC tương đối nhẹ và tiết kiệm diện tích băng thông bởi nó không cần sử dụng Viewstate Điều đó giúp website hoạt động tôt và ôn định khi người dùng thực hiện quá nhiều thao tác tương tác như gửi hay nhận đữ liệu liên tục
Thông qua những nội dung trên, Tôi đã thực hiện đồ án “Xây Dựng Website Bán
Hàng Trực Tuyến Kết Hợp Kỹ Thuật Eull-Text Search” nhằm thực hiện một số công việc về vấn đề quản lý bán hàng trực tuyến, tìm kiếm sản phẩm, chat trực tuyến, thanh toán trực tuyến, quản lý sản phẩm, quản lý nhập sản phẩm, thống kê
VỊ
Trang 8CHUONG 1: TONG QUAN 1.1 LY DO CHON DE TAI
Hiện nay, công nghệ đã trở thành một thành phần không thể thiếu trong cuộc sông của con người, ảnh hưởng trực tiếp đên đời sông, công việc Không chỉ áp dụng thành công trong nhiêu lĩnh vực, ứng dụng công nghệ trong lĩnh vực kinh doanh đang được mỗi cá nhân, chủ doanh nghiệp áp dụng thành công Nội bật là việc áp dụng công nghệ đề cải thiện kinh nghiệm mua hàng, nâng cao sự hài lòng của khách hàng, tiệt kiệm thời gian, chị phí nhân sự
Từ những lý do trên tôi đã quyết định chọn đề tài “Xây Dựng Website Bán Hàng Trực Tuyến Kết Hợp Kỹ Thuật Full- Text Search” nhằm thực hiện một số công, việc về vấn đề quản lý bán hàng trực tuyến, chat trực tuyến, thanh toán trực tuyến, quan ly san pham, quản lý nhập sản phẩm, thống kê
1.2 MỤC TIÊU VÀ PHƯƠNG PHÁP NGHIÊN CỨU
1.2.1 Mục tiêu
Mục tiêu của đề tài “Xây Dựng Website Bán Hàng Trực Tuyến Kết Hợp Kỹ Thuật Full-Text Search” nhằm giúp cho doanh nghiệp nâng cao chất lượng dịch vụ bán hàng đối với khách hàng đồng thời cũng là một công cụ để quản lý hàng hóa, kho, quy trình bán hàng, chăm sóc khách hàng một cách hiệu quả, tiết kiệm được
nhiều thời gian và chi phí cho việc phải cần quá nhiều nhân viên để quản lý Cung cấp một kỹ thuật tìm kiếm hiệu quả để hỗ trợ quá trình tìm kiếm sản phẩm, giúp
khánh hàng tìm kiếm những sản phẩm mong muốn
1.2.2 Nội dung nghiên cứu
— Tim hiéu ky thuat tim kiém Full-Text Search
— Tim hiéu ky thuat lap trình với ngôn ngữ PHP
— Tìm hiểu mô hình MVC
— Tim hiéu HTML, CSS, JavaScript
— Khảo sát và thu nhập các thông tin từ các tài liệu và cơ sở dữ liệu có liên
quan
—_ Tiệp cận một sô webstie ban hang san co
Trang 9Chương I: Tông Quan: Trình bày tông quan về ly do chon dé tai
Chương 2: Cơ Sở Lý Thuyết: Khảo sát hiện trạng hệ thống bán hàng trực truyền hiện nay, xác định các yêu cầu nghiệp vụ chức năng, phi chức năng và giới thiệu các công nghệ, ngôn ngữ lập trình, công cụ và thư viện được sử dụng đề xây đựng và phát triển đề tài
> Chương 3: Phân Tích Thiết Kế Hệ Thống: Phân tích và thiết kế hệ thống,
thiết kế các mô hình, sơ đồ, cơ sở đữ liệu
>_ Chương 4: Xây Dựng Hệ Thống: Xây dựng giao diện hệ thống hoàn chỉnh
> Chương 5: Kết Quả Thực Hiện: Kết quả đạt được, những hạn chế và hướng
phat trién
>
>
Trang 10CHUONG 2: CO SO LY THUYET 2.1 MO TA HIEN TRANG HE THONG
Ctra hang my pham chuyén ban 1é nhiéu loai my pham khac nhau Ngu6én hang
do các nhà cung cấp trong và ngoài nước cung cấp Khách hàng của cửa hàng là người tiêu dùng phù hợp nhiều lứa tuôi, Cửa hàng có quấy thu ngân, quây kế
toán Vi vậy cần một website bán hàng để tiếp cận được nhiều khách hảng và giúp
cho việc quản lý cửa hàng được dễ dàng hơn Cửa hàng sẽ nhận được sự tín nhiệm của khách hàng, giúp xây dựng thương hiệu kinh doanh, chăm sóc khách hàng tốt hơn
22 KỸ THUẬT FULL-TEXT SEARCH
2.2.1 Dinh nghia Full-Text Seach
Full-Text Search là một phương pháp/ kỹ thuật giúp tìm kiếm thông tin một
cách tự nhiên nhất Ngôn ngữ tìm kiếm thường là ngôn ngữ tự nhiên (ngôn ngữ
bình thường của con người), được các công cụ tìm kiếm như: Google, Bing hay những sàn thương mại điện tử lớn trong thời điểm hiện tại sử dung nham dé ho trợ người dùng tìm kiêm thứ họ mong muôn
2.2.2 Hạn chế của toán tử LIKE
Giả sử có câu lệnh SQL, sau:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
Trong do, LIKE sé tim kiém thông tin giới hạn dựa trên cột được quy định và
câu lệnh LIKE làm việc “máy móc” theo kiêu khớp từng ký tự trong chuỗi Vì
thê, LIKE có các yêu điệm như:
+ Độ chính xác thấp và khả năng tìm kết quả bằng tiếng Việt có đấu không tot
+ Độ nhiều kêt qua dau ra rat cao
+ Tốc độ truy vân chậm
Nếu muốn có kết quả tốt hơn, khả năng tìm kiếm bằng ngôn ngữ tự nhiên
được cải thiện hơn và hiệu suât cũng trở nên cao hơn thi Full-Text Search sẽ là một lựa chọn tốt hơn Và yếu tố khiến Full-Text Search trở nên vượt trội hơn các
kỹ thuật tìm kiêm khác đó chính là Inverted Index
Trang 112.2.3 Dinh nghia Inverted Index
Thông thường, các kỹ thuật tìm kiếm sẽ lập chỉ mục (index) theo đơn vị row(document) Inverted Index là một dạng câu trúc dữ liệu có khả năng liên kêt o1ữa các term với nhau và các tải liệu chứa term đó Ví dụ:
Tạo ra 3 tài liệu A1, A2 và A3 như sau:
® Al=“This ts first document”
® A2=“This is second one”
® A3=“one two”
Sau d6, Inverted Index cua 3 tài liệu trên được lưu lại như sau:
"this" => {A1, A2}
"is" => {A1, A2}
{Al, A2} union {Al} = {A1} Vì vậy, khi tìm kiếm dù cho các cụm từ đảo lộn thanh: first This 1s hay This first is két qua cua phép toán union vần không đôi 2.2.4 Các chức năng cua Full-Text Search trong MySQL
2.2.4.1 Tìm kiêm theo ngôn ngữ tự nhiên
Đề thực hiện tìm kiếm theo ngôn ngữ tự nhiên, sử dụng hai ham MATCH()
và AGAINSTQ
Ham AGAINSTQ theo mặc định sẽ nằm ở chế dé IN NATURAL
LANGUAGE MODE Chế độ sort mặc định theo mức độ phủ hợp
Được tính theo công thức :
w = (log(dtf)+1)/sumdtf * U/(1+0.0115*U) log((N-nf)/nf)
Giải thích về công thức như sau: Nếu 1 từ khóa xuất hiện nhiều lần trong 1
ban ghi thi diém weight cua tr khoa đó sẽ tăng lên và ngược lại nêu từ khóa xuât
hiện trong nhiều bản ghi thi diém weight sé bi giam di.
Trang 122.2.4.2 Tim kiém theo Boolean
Theo tìm kiếm tự nhiên thì trong văn bản chỉ cần xuất hiện một trong số những từ mà ta đặt nó ở đầu vào là sẽ trả kết quả về Tuy nhiên có một số trường
hợp muốn phải xuất hiện ít nhất 2 từ nào đó thì lúc nảy phải sử dụng các chế độ MODE (la ky thuat tìm kiếm kết hợp với các toán tử bô trợ)
Đề thực hiện tìm kiếm toàn văn bản trong chế độ Boolean, sử dụng công cụ
stra doi IN BOOLEAN MODE trong biéu thức AGAINST
có Xác định một cụm từ (trái ngược với danh sách các từ riêng lẻ, toàn
bộ cụm từ được khớp đề đưa vào hoặc loại trừ)
2.2.4.1 Tìm kiêm mở rộng
Thông thường, người dùng tìm kiếm thông tin dựa trên kiến thức của họ Họ
sử dụng kinh nghiệm của mình để đưa ra các từ khóa để tìm kiếm thông tin và
đôi khi những từ khóa này quá ngắn
Đề giúp người dùng tìm thông tin dựa trên những từ khóa quá ngắn này, công
cụ Full Text Search MySQL gidi thiệu một khải niệm gọi là mở rộng truy vân (là
kỹ thuật tìm kiêm kết hợp với các toán tử bô trợ)
MySQL full text search thực hiện các bước sau khi sử dụng mở rộng truy
A
van:
1 Tìm kiếm tất cả các hàng khớp với truy vấn tìm kiếm
2 Tìm các từ có liên quan trong tât cả các hàng từ kết quả tìm kiêm
3 Tim kiêm lại dựa trên các từ có liên quan thay vì các từ khóa ban dau được chỉ định bởi người dùng
Trang 132.2.5 Ưu điểm và nhược điểm của Full-Text Search với MySQL
+ Thiếu khả năng phân loại
+ Chỉ hỗ trợ kiêu dữ liệu VARCHAR và TEXT
+ Tiêu tốn bộ nhớ
+ Mất nhiều thời gian đề thêm dữ liệu
2.3 APACHE SOLR
2.3.1 Apache Solr la gi?
Apache Solr (viết tắt cua Searching On Lucene w / Replication) la mét céng cụ tìm kiếm mã nguồn mở, miễn phí dựa trên thư viện Apache Lucene Một tiểu dự án Apache Lucene, da co tir nam 2004 và là một trone những công cụ tìm kiếm phố biến nhất hiện nay trên toàn thế ĐIỚI
Được viết bằng ngôn ngữ lập trình Java, Solr có các API RESTful XML / HTTP
và JSON và các thư viện ứng dụng client cho nhiều ngôn ngữ lập trình như Java, Phyton, Ruby, C #, PHP và nhiều ngôn ngữ khác đang được sử dụng để xây đựng
các ứng dụng phân tích dữ liệu lớn và dựa trên tìm kiếm cho các trang web, cơ so dit liệu, tệp
Solr nhận dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc từ nhiều nguồn khác nhau, lưu trữ và lập chỉ mục, đồng thời cung cấp dữ liệu có sẵn để tìm kiếm trong thời p1an thực Solr cũng được sử dụng cho kha nang phân tích, cho phép thực hiện tìm kiếm sản pham theo từng khía cạnh, tong hợp nhật ký / sự kiện bảo mật, phân tích phương tiện truyền thông xã hội
2.3.2 Tính năng của Ápache Solr
Solr hỗ trợ kiến trúc nhiều đối tượng cho phép bạn mở rộng quy mô, phân phối
và quản lý chỉ mục cho các ứng dụng quy mô lớn
Solr là một nền tảng tìm kiếm ổn định, đáng tin cậy và có khả năng chịu lỗi với
bộ chức năng cốt lõi phong phú cho phép cải thiện cả trải nghiệm người dùng và mô
hình dữ liệu cơ bản Ví dụ: trong số các chức năng giúp mang lại trải nghiệm người dùng tốt, Solr có thê kiểm tra lỗi chính tả, tìm kiếm không gian địa lý, phân loại
hoặc tự động đề xuất
Trang 14Cac tinh nang cốt lõi của Solr:
+ Kha nang tim kiém toan van manh mé: Solr cung cap cac kha nang tim kiém nang cao gan thoi gian thực như tìm kiếm theo trường, truy vấn
Boolean, truy vấn cụm từ, truy vẫn mờ, kiếm tra chính tả, ký tự đại diện, nối, nhóm, tự động hoàn thành và nhiều hơn nữa trên các loại đữ liệu khác nhau
Giao diện quản trị toàn diện: Solr cung cấp giao diện người dùng đáp ứng được tích hợp sẵn cho phép bạn thực hiện các tác vụ quản trị như
quản lý ghi nhật ký, thêm, xóa, cập nhật hoặc tìm kiếm tài liệu
Khả năng mở rộng và tính linh hoạt cao: Solr có thể được triển khai cho bất kỳ loại hệ thống nào như độc lập, phân tán, đám mây, tất cả trong
khi đơn giản hóa cấu hình
Kiến trúc plugin có thể mở rộng: Solr xuất bản các điểm mở rộng giúp
dé dang bé sung cac plugin thoi gian truy vấn va lập chỉ mục
Bảo mật tích hợp: Solr di kèm với các tính năng giải quyết một số khía
cạnh của bảo mật:
o_ SSL để mã hóa lưu lượng HTTP giữa các máy khách Solr và Solr, cũng như ø1ữa các nút
o Xác thực cơ bản và dựa trên Kerberos
o_ API ủy quyền để xác định người dùng, vai trò và quyền
Dễ dàng giám sát: Solr hiển thị các chỉ số thông qua IMX MBeans, vì vậy có thể thực hiện một số giám sát đặc biệt (như kiểm tra tại chỗ) bằng cách sử dụng các công cụ như JConsole hoặc JMXC Kê từ Solr 6.4, Solr
cũng bắt đầu hiện thị các chỉ số của mình thông qua API HTTP
Khả năng phân tích mạnh mẽ: Solr có hai cách phân tích dữ liệu: o_ Các khía cạnh: Đây là những thứ tốt cho phân tích thời gian thực
Vi dụ: trong tìm kiếm sản phẩm, chúng ta sẽ chia nhỏ kết quả theo thương hiệu Trong phân tích nhật ký, chúng ta sẽ xem xét khối
lượng lỗi mỗi giờ
o Tong hợp phát trực tuyến: Solr cho phép thực hiện các quá trình
xử lý phức tạp hơn, dù thường chậm hơn các khía cạnh Các vi du bao gồm kết hợp kết quả với một tập đữ liệu khác (có thể nằm ngoài Solr) và các tác vụ học máy như phân cụm hoặc hỏi quy
2.3.3 Thuật ngữ và các khái niệm cơ bản (rong Solr
Trang 15- Document: La mét don vi thong tin cơ bản trong Solr có thể được lưu trữ và lập chỉ mục Document được lưu trữ trong cac collection Document c6 thê được thêm, xóa va cap nhật, thường thông qua trình xử lý chỉ mục
- Field: Field lưu trữ dữ liệu trong document, chứa một cặp key-value, trong
đó key chỉ ra tên field và value dữ liệu field thực tế Solr hỗ trợ các loại field khác nhau nhu: float, long, double, date, date, text, integer, boolean
- Collection: La mot nhom các phân đoạn / 161 tao thanh mot chi muc logic duy nhất Mỗi collection có bộ cấu hình và định nghĩa lược dé riêng, có thé khác với các collection khác
- Shard: Shard cho phép chia nhỏ và lưu trữ chỉ mục của mỉnh thành một hoặc
nhiều phần, do đó phân đoạn là một phần của tập hợp Mỗi phân đoạn sông trên một nút và được lưu trữ trong một lõi
- Node: Mot node la mét phiên bản Máy ảo Java duy nhất chạy Solr, còn được sọI là máy chủ Solr Một node có thể lưu trữ nhiều phân đoạn
- Replica: Replica la một bản sao vật lý của một phân đoạn chạy như một core trong một node Một trong những bản sao này là một Leader Các bản sao khác của cùng một phân đoạn sẽ sao chép đữ liệu từ trình dẫn đầu
- Leaders: Leader là bản sao của phân đoạn gửi yêu cầu của SolrCloud đến phần còn lại của các bản sao trong phân đoạn bất cứ khi nào có cập nhật chỉ mục, chẳng hạn như bỗ sung hoặc xóa tài liệu Nếu leader đi xuống, một trong những bản sao khác sẽ tự động được bầu làm leader
- Cluster: Riéng đối với SolrCloud, một cluster được tạo thành từ một hoặc nhiều node lưu trữ tất cả đữ liệu, cung cấp khả năng lập chỉ mục và tìm kiếm phân tán trên tất cả các node
2.3.4 Cách hoat dong cua Solr
Solr hoạt động bằng cách thu thập, lưu trữ và lập chỉ mục tài liệu từ các nguồn khác nhau và làm cho có thể tìm kiếm được trong thời øian thực Solr tuân theo một quy trình 3 bước bao pgôm lập chỉ mục, truy vân và cuôi củng là xêp hang ket quả - tất cả đều trong thời gian gan thyc, mac du no co thê hoạt động với khôi lượng đữ liệu không lô
Các bước đề Solr thực hiện tìm kiếm như sau:
Trang 16Cell Trinh xu ly yéu cau này phân tích cú pháp các tệp dén bang Tika va trích xuất các trường cần lập chỉ mục
® Nhập dữ liệu từ cơ sở dữ liệu, email, nguồn cấp RSS, dữ liệu XML, tệp văn bản thuần túy, v.v Solr có một plugin gọi là DatalmportHandler, có thể tìm nap đữ liệu từ cơ sở đữ liệu và lập chỉ mục nó, sử dụng tên cột làm tên trường tài liệu
Solr sử đụng Lucene để tạo chỉ mục ngược vì nó đảo cấu trúc dữ liệu tập trung vào trang (tài liệu = từ) sang cầu trúc tập trung vào từ khóa (từ = tải liệu) Giống như chỉ mục ta thấy ở cuối bất kỳ cuốn sách nào mà ta có thế tìm thấy vị trí các từ nhất định xuất hiện trong sách Tương tự, chỉ mục Solr là một danh sách chứa ánh xạ các từ, thuật ngữ hoặc cụm từ và vị trí tương ứng của chúng trong các tài liệu được lưu trữ
Do đó, Solr đạt được phản hồi nhanh hơn vì nó tìm kiếm các từ khóa trong chỉ mục thay vì quét văn bản trực tiếp
Solr su dụng các trường, dé lập chỉ mục một tài liệu Tuy nhiên, trước khi được thêm vào chỉ mục, dữ liệu sẽ đi qua bộ phân tích trường, noi Solr str dung bộ lọc char, bộ lọc mã thông báo và bộ lọc mã thông báo dé làm cho dữ liệu có thể tìm kiếm được Bộ lọc biểu đồ có thê thực hiện các thay đổi đối với toàn bộ chuỗi Sau
đó, các bộ mã hóa chia nhỏ đữ liệu trường thành các đơn vị từ vựng hoặc mã thông, báo sau đó chuyền qua các bộ lọc quyết định gitr lai, chuyén đôi (ví dụ: đặt tất cả dữ liệu thành chữ thường, loại bỏ các sốc từ) hoặc loại bỏ chúng hoặc tạo các bộ lọc mới Các mã thông báo cudi củng này được thêm vào chỉ mục hoặc được tim kiếm tại thời điểm truy vấn
Tuy nhiên, cần thiết lập các quy tắc để xử lý nội dung được tìm thấy trong các field khi tài liệu được lập chỉ mục Các quy tắc nay chi dinh cac loai field, field nao
là bắt buộc và field nào nên được sử dụng làm khóa chính / duy nhất cũng như cách lập chỉ mục và tim kiếm từng field
Cac field va quy tắc được xác định trong tệp lược đồ được quản lý (trước đây là schema.xml), thường được lưu trữ trong confDrr cho core hoặc collection
Bước 2: Truy vấn
Ví dụ, có thê tìm kiếm các thuật ngữ khác nhau như từ khóa, hình ảnh hoặc dữ liệu vị trí địa lý Khi gửi một truy vân, Solr sẽ xử ly nó với một trinh xử lý yêu câu truy vân (hoặc đơn giản là trình xử lý truy vân) hoạt động tương tự như trinh xử lý chỉ mục, chỉ điều đó được sử dụng đê trả về tài liệu từ chỉ mục Solr thay vỉ tải chúng lên
Bước 3: Xếp hạng kết quả
Trang 17Vị so khớp các tài liệu được lập chỉ mục với một truy vấn, Solr xếp hạng các kết quả theo điểm mức độ liên quan của chúng - các lần truy cập có liên quan nhất xuất
hiện ở đầu các tài liệu phù hợp
2.3.5 Cài đặt Solr
Tải xuống bản phát hành Solr theo liên kết:
https://solr.apache.org/downloads.html
Yêu cầu cài đặt Java 7 trở lên đề khởi chay Solr
Sau khi giải nén tệp đã tải xuông sẽ nhận được một thư mục có tên solr-*, với cầu trúc sau:
e _ Thư mục ở# các tập lệnh sử dụng đề khởi động và dừng Solr
e Thu muc example, docs chửa các tài liệu muốn lập chỉ mục, cũng như tập lệnh sẽ sử dụng đề giao tiếp với Solr,
Đề khởi chạy Solr, mở chương trình cmd, di chuyển đến thư muc bin va chay dong lệnh sau:
2.3.6 Tim kiếm toàn văn với Solr
Tạo document collection với tên là “cars” băng câu lệnh sau:
Trang 18Trong từ vựng, solr gọi bộ sưu tập tài liệu này là “core”
Sau khi tạo core thành công, giao điện người dùng sẽ hiển thị như sau:
Cau hinh Solr
Có thể được thực hiện thông qua giao diện người dùng quản trị hoặc trực tiếp thông qua các tệp Các tệp quan trọng nhật can biết là tệp lược đồ lập chỉ mục (Managed-schema) và tệp cấu hình Solr (solrconfg.xml) Cả hai đều được đặt dưới server/solr/cars/conf/
Tệp giản đồ có thể truy cập được trong phần giản đồ trong giao diện người dùng quản trị Trong phân Tệp, ta có thê truy cập vào tệp cầu hình Solr, cũng như các tệp
có liên quan khác cho cầu hình
Lược đồ lập chỉ mục Solr
Tệp này được sử dụng đề cho Solr biết cách lập chỉ mục các tài liệu muốn cung cấp đề tìm kiêm Đó là một cách hiệu quả đê đảm bảo rắng Solr đang lập chỉ mục nội dung theo đúng cách Tệp này chứa định nghĩa trường tài liệu và kiêu của những, trường này
Lược đồ cũng chứa field “id”, là khóa duy nhat cho méi document Field “id” da được xác định trước trong mọi lược dé (<uniqueKey> id </uniqueKey>)
Dynamic Fields
Solr hé tro hai loai field: dynamic field va static field
Có một số tủy chọn để xác định các field mới:
Trang 19Chỉnh sửa tệp lược đồ để xác định các field Điều nảy có thể được thực hiện thông qua giao diện người dùng quản trị hoặc băng cách chỉnh sửa tệp trực tiếp
Sử dụng API lược đề đề xác định các field mới
Sử dụng dynamic field, một dạng cầu hình quy ước ánh xạ tên trường, thành các kiểu trường dựa trên các mẫu trong tên field
Sử dụng chế độ "schemaless", trong đó các loại fñeld được tự động phát hiện (đoán) dựa trên giá trị đầu tiên được nhìn thấy cho field đó
Cac dynamic field bao gồm những lợi ích thiết yếu của schemaless - cụ thể là
khả năng thêm các field mới một cách nhanh chóng mà không cần phải xác định
trước chúng
Một số mẫu dynamic field phố biến được xác định đề sử dụng:
SUFFIX SUFFIX LIEU
_t _ txt text_general Được lập chỉ mục cho
tìm kiếm toàn văn bản
xếp, phân loại và phân
tích Nó không tốt cho tìm kiếm toàn văn
32 bít (độ chính xác đơn)
64 bít (độ chính xác đơn)
Trang 20
độ đề tìm kiêm không gian địa lý
Cac loai Field
Chỉ định rõ ràng các loại phân tích va phân tích cú pháp sẽ được áp dụng trên nội dung Có hai giai đoạn trong quá trình tìm kiếm Đỗi với mỗi giai đoạn, có thê xác định các loại cụ thể:
Giai đoạn lập chỉ mục: chỉ định cách chúng ta muốn tài liệu của mình được phân tích và lập chỉ mục
Giai đoạn truy vấn: chỉ định cách chúng ta muốn truy vấn người dùng được phân tích cú pháp và phân tích
Các loại Type
Có 3 loại Type:
Xác định trước: Int, foat, strine, date, boolean,
Được định nghĩa bởi Solr: text, phonetic, location,
Tùy chỉnh: Tự định nghĩa để đáp ứng các nhu cầu cụ thế
Các loại máy phân tích
Có 2 loại máy phân tích:
Tokemzers: Xác định cách tách văn bản ví dụ: sử dụng dấu câu, đấu cach,
Bộ lọc: Xác định cách muốn xử lý văn bản ví dụ: loại bỏ các từ dừng, xuất phát từ, lemmatization, các từ khóa exampand bằng các từ đồng nghĩa, bảo vệ một số từ khóa cụ thê,
Đây là một ví dụ về loại được xác định trước “text _øeneral” Trong ví dụ này, chúng ta có hai bộ phân tích:
Bộ phân tích lập chỉ mục (<analyzer type = ”Index”>): được áp dụng trên các trường tài liệu tại thời điểm lập chỉ mục Nó có một tokenIzer tiêu chuẩn, một bộ lọc từ khóa và một bộ lọc chữ thường
Truy vấn phân tích (<analyzer type = ”query”>): được áp dụng tại thời điểm truy vấn Nó có một tokenizer tiêu chuẩn, một bộ lọc từ khóa, một
bộ lọc từ đồng nghĩa và một bộ lọc viết thường
stopwords txt va synyms.txt la hai tép văn ban chứa các từ dừng tương ứng (vi du:
a, the, an, v.v.) cần được xóa khỏi văn bản và các mỗi quan hệ tử đồng nghĩa (ví dụ: automobile, auto, car) nên được áp dụng để mở rộng văn bản Hai tệp này được vận chuyên củng với Solr va co thé duoc sửa đổi dựa trên nhu cầu
Trang 21Trong ví dụ này, sẽ chỉ sử dụng các từ đồng nghĩa tại thời điểm truy vấn Không cần đồng thời áp dụng mở rộng từ đồng nghĩa ở giai đoạn lập chỉ mục
<fieldType name="text general" class="solr.TextField"
The red auto
Trang 22Fields
Khi chúng ta đã xác định các Field, chung ta co thé str dung chung để tạo các Eield của tài liệu sẽ được lập chỉ mục Trường xác định đặc điêm kỹ thuật về cách nó phải được Solr lập chỉ mục và tìm kiêm
Cú pháp với các thuộc tính cơ bản như sau:
<field name=",.," type=" " indexed="truel|lfalse" stored="true| false" required="true|false" />
Chu thich:
¢ name: tén cua field trong chi myc Tén nay phai la duy nhat trong mét
giản đỗ
® type: một trong các loại được xác định như mô tả trong, phần trên
¢ indexed (true | false): chỉ định trường có thê tìm kiếm được hay không Trong một số trường hợp, có thể có các phân tải liệu không muốn đưa vào
trong quá trình tìm kiếm Trong trường hợp đó, lập chỉ mục là false
° stored (true | false): chỉ định liệu một fñeld có nên được lưu trữ đề có thể trả về trong tập kết quả hay không
® required (true | false): chi dinh m6t field phat tồn tại trong tài liệu để được lập chỉ mục hay không
Hãy lây một ví dụ cơ bản mô tả car Một chiếc xe có kiêu đáng, mô hình, mô tả, màu sắc và giá cả Để lập chỉ mục các tài liệu mô ta 6 tô, có thể xác định các trường sau trong lược dé:
<field name="id" type="String” indexed="true" stored="true"
required="true"” multiValued="false" />
<field name="make" type="sString”" indexed="true" stored="true"
reguired="true" />
<field name="model" type="string" indexed="true" stored="true"/>
<field name="description" type="text general" indexed="true"
stored="true" />
<field name="colour" type="string" indexed="true" stored="true"/>
<field name="price" type="pint" indexed="true" stored="true"/>
Như đã mô tả ở trên, ta có thê sử dụng các trường động Thay vì xác định rõ ràng tên trường trong lược đồ, ta có thê sử dụng hậu tô trường trong tài liệu muôn lập chỉ mục Ví dụ: ta không tạo trường “tmake” trong lược đô, thay vào đó, bạn sử dụng
“make_s” trong tải liệu
Phần xmI ở trên nên được thêm vào tệp lược dé (Managed-schema) Co thê thực hiện thông qua giao diện người dùng quản trị hoặc băng cách chỉnh sửa tệp theo cách thủ công Tệp lược đồ được quản lý nằm trong solr-*/server/solr/cars/conf Lược để hiện tại đã có một số trường và kiêu Phải luôn đảm bảo rằng các trường,
và loại tạo mới không xung đột với các trường và loại hiện có