Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 79 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
79
Dung lượng
2,92 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ LÊ VĂN TRUNG NÂNGCẤPTÍNHNĂNGTÌMKIẾMCỦAPHẦNMỀM THƢƠNG MẠIĐIỆNTỬMAGENTOSỬDỤNGSPHINXSEARCH LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2016 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu cá nhân dƣới hƣớng dẫn giúp đỡ TS Trần Trúc Mai Các kết đƣợc viết chung với tác giả khác đƣợc đồng ý tác giả trƣớc đƣa vào luận văn Trong toàn nội dung nghiên cứu luận văn, vấn đề đƣợc trình bày tìm hiểu nghiên cứu cá nhân tơi đƣợc trích dẫn từ nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp Trong luận văn, có tham khảo đến số tài liệu số tác giả đƣợc liệt kê mục tài liệu tham khảo Hà nội, tháng năm 2016 Tác giả luận văn Lê Văn Trung LỜI CẢM ƠN Để hoàn thành tốt luận văn này, Tôi xin bày tỏ lòng biết ơn chân thành sâu sắc đến Tiến sĩ Trần Trúc Mai, ngƣời tận tình trực tiếp hƣớng dẫn Tơi suốt q trình triển khai nghiên cứu đề tài, tạo điều kiện để Tơi hồn thành luận văn Thứ hai, Tơi xin bày tỏ lòng biết ơn chân thành tới tồn thể thầy cô giáo khoa Công nghệ thông tin, trƣờng Đại học Công nghệ Hà Nội, Đại học Quốc gia Hà Nội dạy bảo tận tình Tơi suốt q trình Tơi học tập khoa Cuối Tơi xin chân thành cảm ơn tới gia đình, bạn bè, đồng nghiệp bên em cổ vũ, động viên, giúp đỡ Tơi suốt q trình học tập thực luận văn Mặc dù cố gắng hoàn thành luận văn phạm vi khả cho phép nhƣng chắn không tránh khỏi thiếu sót Tơi mong đƣợc góp ý chân thành thầy bạn để Tơi hồn thiện luận văn Xin chân thành cảm ơn! Hà Nội, tháng năm 2016 Học viên Lê Văn Trung ii MỤC LỤC LỜI CẢM ƠN Chƣơng TỔNG QUAN VỀ MAGENTO VÀ MÔI TRƢỜNG CÀI ĐẶT 1.1 Tổng quan Magento 1.1.1 Giới thiệu chung 1.1.2 Lịch sử phát triển 1.1.3 Tính hệ thống mã nguồn mở Magento 1.2 Ƣu điểm nhƣợc điểm hệ thống mã nguồn mở Magento .8 1.3 Môi trƣờng cài đặt 10 1.3.1 Virtual Private Server DigitalOcean 10 1.3.2 LEMP Server 10 1.4 Kết luận chƣơng 11 Chƣơng TÌMKIẾM TRÊN MAGENTO 12 2.1 Giới thiệu 12 2.2 Thuật toán tảng loại tìmkiếmMagento 14 2.2.1 Tìmkiếm like 14 2.2.2 Tìmkiếm tồn văn 15 2.2.3 Tìmkiếm kết hợp 19 2.3 Giải pháp nângcấptínhtìmkiếmMagento 20 2.3.1 Phƣơng pháp tiếp cận 20 2.3.2 Các giải pháp mở rộng tínhtìmkiếm cho Magento 21 2.3.3 SửdụngSphinx để cấptínhtìmkiếm 25 2.4 Kết luận chƣơng 26 Chƣơng SỬDỤNGSPHINXSEARCHNÂNGCẤPTÍNHNĂNGTÌMKIẾM TRÊN MAGENTO 27 3.1 Một số vấn đề tìmkiếm tồn văn 27 3.1.1 Khái niệm tìmkiếm toàn văn 27 3.1.2 Khái niệm số thuật toán đánh số 27 3.2 Tổng quan SphinxSearch 31 iii 3.2.1 Định nghĩa: 31 3.2.2 TínhSphinxSearch 31 3.2.3 Lịch sử phát triển 32 3.2.4 Cài đặt sphinx môi trƣờng Linux 32 3.2.5 Cách sửdụngSphinxSearch 33 3.3 Cơ chế hoạt động SphinxSearch 34 3.3.1 Các thành phầnsphinx 34 3.3.2 Tiến trình làm việc 34 3.3.3 Lập số 36 3.3.4 Tìmkiếm 42 3.3.5 Matching Modes (Chế độ phù hợp) 44 3.3.6 Xếp hạng kết tìmkiếm 47 3.3.7 Các Rankers đƣợc xây dựng sẵn 48 3.3.8 Sắp xếp kết tìmkiếm 49 3.3.9 Nhóm kết tìmkiếm 51 3.4 Kết luận chƣơng 51 Chƣơng TRIỂN KHAI NÂNGCẤPTÍNHNĂNGTÌMKIẾM CHO MAGENTO BẰNG CÁCH SỬDỤNGSPHINX 52 4.1 Yêu cầu 52 4.2 Phân tích thiết kế 52 4.2.1 Chức lập số từ bảng liệu Magento 52 4.2.2 Chức lựa chọn chế độ tìmkiếm 52 4.3 Triển khai xây dựng 53 4.3.1 Tạo bảng chứa liệu trƣờng đƣợc lập mục 53 4.3.2 Cài đặt Sphinx Server cấu hình 55 4.3.3 Lập số liệu 57 4.3.4 Lựa chọn chế độ tìmkiếm 57 4.4 Kết luận chƣơng 4: 59 Chƣơng ĐÁNH GIÁ KẾT QUẢ 60 iv 5.1 Kết xây dựng 60 5.2 Đánh giá kết xây dựng 61 5.3 Kết luận chƣơng 66 ́ KÊT LUÂN 67 TÀI LIỆU THAM KHẢO 68 v DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Từ viết tắt Từ cụm từ FTS Full Text Search (Tìm kiếm tồn văn bản) API Application Program Interface RT Realtime (Chỉ số thời gian thực) SPHINX SQL Phrase Index MVA Multi-Valued attributes VPS Virtual Private Server vi DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 Thị phần Magento[16] Hình 2.1 Chọn chức tìmkiếm like 12 Hình 2.2 Chọn chức tìmkiếm Fulltext 13 Hình 2.3 Chọn chức tìmkiếm kết hợp 13 Hình 2.4 Kết tìmkiếmtừ khóa “cotton shirt” chế độ like 15 Hình 2.5 Kết tìmkiếmtừ khóa “cotton shirt” chế độ fulltext 18 Hình 3.1 Sơ đồ làm việc SphinxSearch 35 Hình 3.2 Dữ liệu bảng post 38 Hình 3.3 Kết tạo số 39 Hình 3.4 Kết tìmkiếmtừ khóa „php‟ 39 Hình 3.5 Kết xây dựng lại số 40 Hình 3.6 Kết tìmkiếmtừ khóa „php‟ đƣợc viết tác giả Aditya Mooley 40 Hình 4.1 Kết xây dựng bảng sphinx_catalogSearch_fulltext .54 Hình 4.2 Lập số Sphinx 57 Hình 5.1 Giao diện quản trị 60 Hình 5.2 Giao diệntìmkiếm 60 Hình 5.3 Giao diện trang kết tìmkiếm 61 Hình 5.4 Kết search like 63 Hình 5.5 Kết tìmkiếm fulltext search mysql 64 Hình 5.6 Kết lựa chọn chế độ kết hợp 65 Hình 5.7 Kết tìmkiếmSphinxSearch 66 DANH SÁCH BẢNG BIỂU Bảng 2.1 Bảng danh sách số stopword 16 Bảng 3.1 Danh sách document cần tìmkiếm 28 Bảng 3.2 Danh sách term 28 vii Bảng 3.3 Kết tìmkiếm dựa vào term 29 Bảng 3.4 Bảng kết chuyển term sang định dạng tiêu chuẩn 30 Bảng 3.5 Bảng post sở liệu myblog 37 Bảng 3.6 Bảng so sánh thời gian index trƣờng hợp“stop word” 41 Bảng 3.7 Các loại truy vấn Boolean 45 Bảng 3.8 Các truy vấn mở rộng 47 Bảng 3.9 Các loại xếp Sphinx 50 Bảng 3.10 Các phƣơng thức nhóm kết tìmkiếm 51 Bảng 4.1 Các trƣờng liệu bảng sphinx_catalogSearch_fulltext 53 Bảng 5.1 Kết tìmkiếmtừ khóa 62 MỞ ĐẦU ĐẶT VẤN ĐỀ Ngày thƣơng mạiđiệntử phát triển vô mạnh mẽ tốc độ sửdụng internet với ngày nhiều công nghệ đại đời Mọi ngƣời ngày ƣa thích giao dịch dƣới hình thức thuận lợi mang lại nhƣ tiện lợi, nhanh chóng, tiết kiệm chi phí, dễ dàng để tìmkiếm mặt hàng cần mua, bán Do yêu cầu đặt xây dựng gian hàng trực tuyến có khả hỗ trợ tìmkiếm hiệu nâng cao để thực mua bán trực tuyến dễ dàng Magentophầnmềm thƣơng mạiđiệntử mã nguồn mở hồn tồn miễn phí cho phép ngƣời dùng thiết kế, cài đặt chạy gian hàng thƣơng mạiđiệntử riêng với linh hoạt cao Tuy nhiên Magento chức tìmkiếm mặc định có nhiều hạn chế ta cần nângcấptínhtìmkiếm để đáp ứng yêu cầu ngày cao khách hàng MỤC ĐÍCH CỦA LUẬN VĂN Đề xuất sửdụng cơng cụ tìmkiếm tồn văn Sphinx để nângcấptínhtìmkiếm mặc định Magento Xây dựng chƣơng trình mở rộng tích hợp vào mã nguồn Magento dựa cơng cụ tìmkiếm tồn văn SphinxSearch để nângcấptínhtìmkiếm mặc định Magento Đặt tên chƣơng trình Extension SphinxSearch Đánh giá kết tìmkiếm trƣớc sau sửdụng Extension SphinxSearch BỐ CỤC CỦA LUẬN VĂN Ngoài phần mở đầu, kết luận, danh mục, đề tài có liên quan, luân văn gồm 05 chƣơng đƣợc tổ chức nhƣ sau: Chƣơng 1: Tổng quan Magento môi trường cài đặt: Giới thiệu chung hệ thống mã nguồn mở thƣơng mạiđiệntửMagento môi trƣờng cài đặt Magento luận văn 56 sql_port = 3306 # optional, default is 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT product_id, name, name_attributes, category, data_index FROM sphinx_catalogSearch_fulltext sql_query_info = SELECT product_id, name, name_attributes, category, data_index FROM sphinx_catalogSearch_fulltext WHERE product_id=$id } index fulltext { source = Magento_fulltext path = /var/lib/sphinx/Magento.sphinx.index = extern docinfo charset_type = sbcs } indexer { mem_limit = 128M listen = 9312 listen = 9306:mysql41 } Searchd { log = /var/log/sphinx/Searchd1.log query_log = /var/log/sphinx/query1.log read_timeout = max_children = 30 pid_file = /var/run/sphinx/Searchd1.pid 57 max_matches = 1000 seamless_rotate = preopen_indexes = unlink_old = workers = threads # for RT to work binlog_path = /var/lib/sphinx/ } 4.3.3 Lập số liệu Chạy indexing: Hình 4.2 Lập số Sphinx 4.3.4 Lựa chọn chế độ tìmkiếm Cài đặt chế độ tìm kiếm: Đánh trọng số trƣờng tìmkiếm để ƣu tiên thị kết ‘name’=7 ‘data_index’=3 ‘category’=1 ‘name_attributes’=1 Lựa chọn chế độ tìm kiếm: SPH_MATCH_EXTENDED2 Lựa chọn chế độ xếp hạng: SPH_RANK_SPH04 58 public function getSphinxAdapter() { require_once(Mage::getBaseDir('lib') DIRECTORY_SEPARATOR 'sphinxapi.php'); $sphinx = new SphinxClient(); $host = Mage::getStoreConfig('sphinxSearch/server/host'); $port = Mage::getStoreConfig('sphinxSearch/server/port'); if (empty($host)) { return $sphinx; } if (empty($port)) { $port = 9312; } $sphinx->SetServer($host, $port); $sphinx->SetMatchMode(SPH_MATCH_EXTENDED2); $sphinx->setFieldWeights(array( 'name' => 7, 'category' => 1, 'name_attributes' => 1, 'data_index' => )); $sphinx->setLimits(0, 200, 1000, 5000); $sphinx->SetRankingMode(SPH_RANK_SPH04, ""); return $sphinx; } 59 Dựa vào cài đặt để hiển thị kết truy vấn phù hợp 4.4 Kết luận chƣơng 4: Chƣơng luận văn sửdụngphần nội dung lý thuyết tìm hiểu phần để xây dựng chƣơng trình tích hợp vào Magento để nângcấptínhtìmkiếm mặc định sẵn có dựa tảng cơng cụ tìmkiếmsphinxSearch đáp ứng yêu cầu tìmkiếm khách hàng website thƣơng mạiđiệntửsửdụngMagento 60 Chƣơng ĐÁNH GIÁ KẾT QUẢ 5.1 Kết xây dựng a) Giao diện trang quản trị: Chứa lựa chọn: - Kích hoạt extension - Chạy index - Cấu hình host, port - Chọn thêm trƣờng để index Hình 5.1 Giao diện quản trị b) Giao diện trang tìmkiếm Bao gồm hộp thoại nhập từ khóa tìmkiếm Hình 5.2 Giao diệntìmkiếm 61 c) Giao diện trang kết tìmkiếm Hình 5.3 Giao diện trang kết tìmkiếm 5.2 Đánh giá kết xây dựngTừ khóa tìmkiếm ANN ANKLE BOOT SphinxSearchSearch default in Magento Trả 01 mặt hàng phù hợp Trả mặt hàng 1.ANN ANKLE 1.ANN ANKLE BOOT BOOT 2.THE ESSENTIAL BOOT CUT JEAN 3.FLAT FRONT TROUSER BARCLAY D'ORSAY PUMP, NUDE 5.A TALE OF TWO CITIES 62 Từ khóa tìmkiếmSphinxSearchSearch default in Magento 6.FIRE [KALIMA REMIX] BY UNANNOUNCED GUEST LINEN BLAZER Trả 01 mặt hàng LINEN BLAZER Trả 04 mặt hàng LINEN BLAZER STRETCH COTTON BLAZER ELIZABETH KNIT TOP SULLIVAN SPORT COAT Bảng 5.1 Kết tìmkiếmtừ khóa Từ khóa tìm kiếm: ANN ANKLE BOOT Chế độ Search like: Kết trả mặt hàng: 63 Hình 5.4 Kết search like 64 Chế độ full-text MySQL: Kết trả mặt hàng Hình 5.5 Kết tìmkiếm fulltext search mysql 65 Kết hợp like full-text MySQL: Kết trả mặt hàng Hình 5.6 Kết lựa chọn chế độ kết hợp 66 Chế độ sphinx Search: Kết trả mặt hàng Hình 5.7 Kết tìmkiếmSphinxSearch 5.3 Kết luận chƣơng Nội dung chƣơng thể so sánh kết tìmkiếmtìmkiếm mặc định MagentotìmkiếmsửdụngSphinx qua thấy đƣợc hiệu việc nângcấptínhtìmkiếmphànmềm thƣơng mạiđiệntửMagento 67 ́ KÊT LUÂN Tìmkiếm gian hàng trực tuyến yêu cầu cấp bách ngƣời sửdụng Tuy nhiên chức tìmkiếm có sẵn Magento có nhiều hạn chế chất lƣợng thời gian tìmkiếm đề tài luận văn “Nâng cấptínhtìmkiếmphầnmềm thƣơng mạiđiệntửMagentosửdụngSphinx Search” giải yêu cầu thực tế trên, luận văn tập trung tìm hiểu, nghiên cứu đạt đƣợc số kết sau: Nghiên cứu tài liệu để trình bày vấn đề sau: - Trình bày kiến thức hệ thống mã nguồn mở Magento, chức chính, ƣu điểm nhƣợc điểm hệ thống - Tìm hiểu chức tìmkiếm hệ thống mã nguồn mở Magento, hạn chế chức tìmkiếm mặc định giải pháp nângcấptínhtìmkiếm mặc định - Nghiên cứu đặc điểm cơng cụ tìmkiếm tồn văn Sphinx: Các chức chính, chế làm việc, cách tích hợp vào Magento - Nghiên cứu cách tích hợp sphinxSearch vào Magento để nângcấptínhtìmkiếm Hƣớng phát triển đề tài nghiên cứu hƣớng sau: Tối ƣu hóa chƣơng trình xây dựng, cải thiện tốc độ chức lập số, cải thiện kết tìmkiếm thời gian hiệu 68 TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt [1] Nguyễn Kim Quy (2006), “Một số vấn đề liên quan đến SEARCH ENGINE, ứng dụng TEXT”, Luận văn Thạc sỹ công nghệ thông tin, Trƣờng Đại học Công nghệ, Đại học Quốc gia Hà Nội, tr 42-57 [2] Nguyễn Thị Hoàng Yến (2015), “Cải thiện tốc độ hoạt động Website thươngmạiđiệntửsửdụng mã nguồn mở Magento thông qua kỹ thuật VARNISH”, Luận văn Thạc sỹ công nghệ thông tin, Trƣờng Đại học Công Nghệ, Đại học Quốc gia Hà Nội, tr 1-23 Tài liệu tiếng Anh [3] Abbas Ali (2011), “ SphinxSearch Beginner‟s Guide”, Packt Publishing, Birmingham, B27 6PA, UK [4] Andrew Aksyonoff (2011), “Introduction to Search with Sphinx”, O‟Reilly, United States of America Website [5] http://www.vijaywebsolutions.com/advantages-disadvantages-ofMagento-ecommerce-platform/ [6] http://www.shoppimon.com/content/2015/01/optimizing-Magentoperformance-solutions-help-speed-shop/ [7] https://en.wikipedia.org/wiki/Apache_Solr [8] https://www.elastic.co [9] http://www.sooqr.com/ [10] https://en.wikipedia.org/wiki/Full_text_Search [11] https://www.mysql.com/ [12] https://en.wikipedia.org/wiki/Suffix_tree [13] Digital Ocean Tham khảo trang 69 http://www.digitalocean.com/ [14] Magento Đƣợc tham khảo từ trang Magento http://Magento.com [15] Magento Giới thiệu Magento đƣợc tham khảo từ trang http://www.Magentoecommere.com/knowledge-base/entry/Magento-fordev-part-1-introduction-to-Magento [16] Magento Biểu đồ thị phầnMagento http://blog.aheadworks.com/2014/10/e-commerce-platforms-shareinvestigation-october-2014/ 70 PHỤ LỤC GIẢI THÍCH TỪ NGỮ Extension: Là phần mở rộng đƣợc thêm vào Magento để thực chức riêng biệt khác nhau: LEMP Server (L-Linux, E-Nginx, M- Mysql, P-php): Đề cập đến hệ điều hành dựa Linux, máy chủ web Nginx (phát âm “engine x”), máy chủ sở liệu MySQL, Ngơn ngữ lập trình PHP ... mở rộng tính tìm kiếm cho Magento 21 2.3.3 Sử dụng Sphinx để cấp tính tìm kiếm 25 2.4 Kết luận chƣơng 26 Chƣơng SỬ DỤNG SPHINX SEARCH NÂNG CẤP TÍNH NĂNG TÌM KIẾM TRÊN MAGENTO. .. thƣơng mại điện tử đời, bật phần mềm thƣơng mại điện tử Magento Magento phần mềm thƣơng mại điện tử mã nguồn mở đƣợc sử dụng thƣơng hiệu hàng đầu giới Magento đƣợc cho hệ thống thƣơng mại điện tử. .. sẵn Magento, hạn chế loại tìm kiếm mặc định đặt tốn cần cấp tính tìm kiếm mặc định hệ thống Magento Chương 3: Sử dụng Sphinx Search nâng cấp tính tìm kiếm Magento: Trình bày đặc điểm cơng cụ tìm