BÁO CÁO TIỂU LUẬN MÔN HỌC Tìm hiểu về công cụ tìm kiếm Elasticsearch và ứng dụng tìm kiếm vào website thương mại điện tử

35 2 0
BÁO CÁO TIỂU LUẬN MÔN HỌC Tìm hiểu về công cụ tìm kiếm Elasticsearch và ứng dụng tìm kiếm vào website thương mại điện tử

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH BÁO CÁO TIỂU LUẬN MƠN HỌC Tìm hiểu cơng cụ tìm kiếm Elasticsearch ứng dụng tìm kiếm vào website thương mại điện tử Mơn học: Các hệ sở liệu Ngành: CƠNG NGHỆ THÔNG TIN Giảng viên: PGS.TS Nguyễn Thị Thúy Loan Nhóm học viên thực MSHV Họ Tên Lớp 2241860001 Trần Minh Duyệt 22SCT01 Tháng - 2022 Mục lục Chương 1.1 Kiến thức tảng Elasticsearch: 1.1.1 Elasticsearch gì? 1.1.2 Elasticsearch hoạt động nào: 1.1.3 Các khái niệm cần biết Elasticsearch 1.1.3.1 Document 1.1.3.2 Index 1.1.3.3 Shard 1.1.3.4 Node 1.1.3.5 Cluster Ưu nhược điểm Elasticsearch 1.1.4 1.1.4.1 Ưu điểm 1.1.4.2 Nhược điểm 1.1.5 Cách cài đặt: 1.1.6 Các lệnh để truy vấn Elasticsearch 1.1.6.1 Tạo index 1.1.6.2 Chỉnh sửa, cập nhật tài liệu 1.1.6.3 Xoá tài liệu 1.1.6.4 Truy vấn tìm kiếm 1.2 Kibana 1.3 Docker 1.3.1 Giới thiệu 1.3.2 Container 1.3.3 Khái niệm liên quan 1.4 MongoDB 1.4.1 Giới thiệu MongoDB 1.4.2 Một số câu lệnh cơ bản trên MongoDB 1.4.3 Ưu điểm MongoDB 10 1.4.4 Nhược điểm MongoDB 11 1.5 NodeJS 11 1.3.1 Giới thiệu 11 1.3.2 Những ứng dụng nên viết bằng Nodejs 11 1.6 Express 12 1.7 Restful Api 12 1.7.2 1.8 Đặc điểm của Resful API 12 React JS 13 1.8.1 Lợi ích việc sử dụng react js 13 Chương Phát biểu toán 14 2.1 Các chức 14 2.2 Kiến trúc tổng thể phần mềm 14 Kiến trúc tổng thể phần mềm 14 Chương Đặt tả yêu cầu: 15 3.1 Sơ đồ CSDL 15 3.2 Đặc tả Use Case 18 Chương Các giao diện đề tài 23 4.1 Kibana 23 4.2 Studio 3T 24 4.3 Docker 24 4.4 Trang chủ 24 4.5 Trang admin 26 4.6 Chi tiết sản phẩm 26 4.7 Giỏ hàng 27 4.8 Bộ lọc sản phẩm 28 4.9 Đăng nhập 28 4.10 Đăng ký 29 Tài liệu tham khảo 30 Mục lục hình ảnh Hình 1 Sơ đồ hoạt động của Elasticsearch Hình Cách hoạt động của Elasticseach Hình Giao diện kibana Hình Sơ đồ giao tiếp của hệ thống 15 Hình Cơ sở dữ liệu của dự án 17 Hình 3 Sơ đồ usecase 18 Hình Giao diện dev tool của kibana 23 Hình Giao diện của Studio 3T 24 Hình Giao diện của docker desktop 24 Hình 4 Giao diện trang web 26 Hình Giao diện trang admin 26 Hình Giao diện chi tiết của sản phẩm 27 Hình Giao diện chi tiết của sản phẩm 27 Hình Giao diện bộ lọc sản phẩm 28 Hình Giao diện đăng nhập 28 Hình 10 Giao diện đăng ký tài khoản 29 NHIỆM VỤ ĐỀ TÀI Nội dung và các yêu cầu cần giải báo cáo môn học o Lập trình NodeJS, ReactJS, Express Framework o Công cụ tìm kiếm Elasticsearch o Hệ quản trị sở dữ liệu MongoDB o Kết nối NodeJS, Elasticsearch với MongoDB Các tài liệu, số liệu cần thiết Sử dụng số liệu thực tế thu thập mạng internet Chương Kiến thức tảng 1.1 Elasticsearch: 1.1.1 Elasticsearch gì? Elasticsearch dạng Search Engine (Cơng cụ tìm kiếm) phát triển dựa tảng Apache Lucene Elasticsearch mắt năm 2010 bởi Shay Banon, xây dựng ngôn ngữ Java, với giao diện web HTTP có hỗ trợ JSON Nó cho phép ta chuyển dữ liệu vào tìm kiếm trực tiếp, thay tìm kiếm hệ quản lý sở dữ liệu thông thường Oracle, MySQL,… Elasticsearch cung cấp cho người dùng hệ thống tìm kiếm dạng phân tán, phù hợp với tệp dữ liệu lớn Elasticsearch thường sử dụng việc tìm kiếm đơn giản trang web, mục thu thập dữ liệu, phân tích trực quan hóa dữ liệu kinh doanh Elasticsearch thường hoạt động với thành phần khác ELK Stack, Logstash Kibana, đóng vai trị lập mục dữ liệu Được cơng ty lớn sử dụng : • Wikimedia • FDA • athenahealth • CERN • Adobe Systems • Stack Exchange • Facebook • Center for Open Science • StumbleUpon Mozilla, • Reverb • Amadeus IT Group • Netflix • Quora • Pixabay • Foursquare • Motili • Etsy • Sophos • SoundCloud • Slurm Workload Manager • GitHub 1.1.2 Elasticsearch hoạt động nào: Hình 1 Sơ đồ hoạt động Elasticsearch Về bản, Elasticsearch hoạt động Cloud Server có khả tìm kiếm thơng qua chế RESTful Trong đó, người dùng tạo HTTP Request dữ liệu dạng JSON, sau nhập vào Elasticsearch Các dữ liệu đánh Index (Chỉ mục), giúp đem lại hiệu tìm kiếm cao Đầu tiên, dữ liệu đưa vào Elasticsearch từ nhiều nguồn khác nhau, sau phân tích, xử lý, q trình nhập liệu Tiếp theo, dữ liệu phân loại mục, đẩy lên Server Elasticsearch Ći cùng, người dùng tạo truy vấn phức tạp lấy dữ liệu trả từ server Elasticsearch 1.1.3 Các khái niệm cần biết Elasticsearch 1.1.3.1 Document Document thông tin lập mục Elasticsearch, đơn vị lưu trữ dữ liệu nhỏ Elasticsearch Document văn bản, dạng cấu trúc dữ liệu mã hóa JSON sớ, chuỗi, ngày tháng,… Mỗi Document có ID cho kiểu dữ liệu Ví dụ, Document đại diện cho báo bách khoa toàn thư 1.1.3.2 Index Index (Chỉ mục) tập hợp tài liệu có đặc điểm liên quan mặt logic Ví dụ: Trong trang web sàn thương mại điện tử, bạn tìm thấy Chỉ mục cho Khách hàng, Chỉ mục cho Sản phẩm,… Chỉ mục sử dụng để tìm kiếm, thêm xóa tài liệu Một khái niệm Index mà bạn nên biết Inverted Index (Chỉ mục đảo ngược) Chỉ mục đảo ngược không lưu trữ trực tiếp chuỗi mà chia tài liệu thành cụm từ tìm kiếm riêng lẻ Nhờ đó, người dùng tìm thấy kết phù hợp nhanh chóng, kể tệp dữ liệu với khối lượng lớn 1.1.3.3 Shard Shard tập Document Index, đơn vị lưu trữ liệu nhỏ nhất, hoạt động ở mức thấp Bằng cách phân phối Documents Index nhiều Shard, Elasticsearch đảm bảo tính dự phịng, bảo vệ hệ thớng khỏi lỗi phần cứng giúp tăng khả truy vấn hoạt động Có loại Shard : Primary Shard Replica Shard • Primary Shard lưu trữ dữ liệu đánh Index, sau vận chuyển tới Replica Shard • Replica Shard nơi lưu trữ dữ liệu nhân Primary Shard, giúp đảm bảo dữ liệu Primary Shard toàn vẹn hệ thống xảy vấn đề 1.1.3.4 Node Node coi phận “đầu não” Elasticsearch Đây nơi lưu trữ dữ liệu trực tiếp, đánh Index Cluster thực thao tác tìm kiếm dữ liệu Mỗi Node thường định danh tên 1.1.3.5 Cluster Cluster tập hợp nodes hoạt động với Mỗi Cluster có Node lựa chọn tự động, Node thay Một những lỗi sai developer định danh Cluster trùng tên nhau, điều gây lỗi cho Node Bạn nên lưu ý vấn đề tiến hành setup Hình Cách hoạt động Elasticseach 1.1.4 Ưu nhược điểm Elasticsearch 1.1.4.1 • Ưu điểm Tìm kiếm liệu nhanh chóng: Điều có nhờ chế hoạt động Elasticsearch thay tìm kiếm văn trực tiếp, tìm kiếm Index Nó sử dụng cấu trúc Document thay bảng lược đồ • Khả phân phới mở rộng: Bản chất phân tán Elasticsearch giúp người dùng mở rộng quy mô lên hàng trăm, hàng nghìn máy chủ xử lý hàng petabyte dữ liệu • Đơn giản hóa hiển thị báo cáo liệu: Elasticsearch cho phép tích hợp với Beats Logstash, giúp người dùng dễ dàng xử lý dữ liệu trước đưa vào Elasticsearch Ngồi ra, khả trực quan hóa giao diện giúp truy cập dữ liệu cách nhanh chóng • Tính vượt trội: Elasticsearch cung cấp sớ tính vượt trội cho phép người dùng lưu trữ tìm kiếm dữ liệu hiệu cuộn dữ liệu quản lý vịng đời Index • Ngồi ra, Elasticsearch hỗ trợ dữ liệu từ Java, PhP, Javascript, NET, Python, giúp người dùng dễ dàng trình sử dụng chuyển đổi 1.1.4.2 • Nhược điểm Elasticsearch thiết kế chủ yếu cho việc search dữ liệu, yếu so với database khác mục đích ngồi search • Elasticsearch khơng thích hợp với những hệ thống thường xuyên cập nhật dữ liệu 1.1.5 Cách cài đặt: Bước 1: Sử dụng docker để cài đặt: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.4.1 container_name: elasticsearch restart: always environment: - xpack.security.enabled=false - discovery.type=single-node - http.cors.enabled = true - http.cors.allow-origin= "*" - http.cors.allow-methods= OPTIONS, HEAD, GET, POST, PUT, DELETE - http.cors.allow-headers= X-Requested-With,X-Auth-Token,ContentType,Content-Length - http.cors.allow-credentials=true ulimits: memlock: Các collectors có csdl Mongo 16 Hình Cơ sở liệu dự án 17 Sơ đồ Use Case hệ thớng (vẽ phần mềm: StarUML) Hình 3 Sơ đồ usecase 3.2 Đặc tả Use Case Use case ID U001 Tên Use Case Mua hàng Tóm tắt Khách hàng vào website tiến hàng mua thành tốn cho hàng mong ḿn Tác nhân Người mua Điều kiện tiên Đăng nhập thành công Kết Thanh tốn đặt hàng thành cơng Tìm kiếm sản phẩm Kịch Chọn sản phẩm ḿn mua Mua hàng Thanh tốn 18 2a Không thấy sản phẩm muốn mua Chọn sản phẩm tương tự Mua hàng Kịch phụ 3a Sản phẩm muốn mua hết Chọn sản phẩm tương tự Mua hàng 4a Khách hàng khơng có ví điện tử Ràng buộc phi chức Use case ID U002 Tên Use Case Đăng ký Để thực mua hàng khách hàng cần phải đăng nhập Tóm tắt để hệ thớng kiểm tra thơng tin người dùng mua hàng Tác nhân Khách hàng Điều kiện tiên Có tài khoản google Kết Đăng ký thành cơng Truy cập website Kịch Đăng ký tài khoản Xác thực tài khoản qua email 2a Khách hàng khơng có tài khoản google Đề nghị khách hàng thiết lập tài khoản google Kịch phụ Đăng ký 3a Khách hàng không xác thực tài khoản Yêu cầu khách hàng xác thực sử dụng email khác Ràng buộc phi chức 19 Use case ID U003 Tên Use Case Đăng nhập Tóm tắt Để mua hàng tiến hành đặt hàng khách hàng cần phải đăng nhập vào hệ thớng Tác nhân Khách hàng Điều kiện tiên Đã đăng ký tài khoản Kết Đăng nhập thành công Truy cập website Kịch Chọn mục đăng nhập Nhập thông tin đăng nhập Đăng nhập thành công 2a Khách hàng chưa đăng ký tài khoản Kịch phụ Đề nghị khách hàng đăng ký tài khoản Tiến hành đăng nhập sau đăng ký tài khoản thành công Ràng buộc phi chức Use case ID U004 Tên Use Case Giao hàng Tóm tắt Sau khách hàng mua hàng tốn thành cơng sản phẩm cần giao đến địa mà khách hàng yêu cầu Tác nhân Đơn vị giao hàng Điều kiện tiên Mua hàng thành tốn thành cơng Kết Phía đơn vị giao hàng nhận hàng 20 Khách hàng toán thành cơng Kịch Đơn vị giao hàng tiếp nhận hàng Đơn vị giao hàng tiến hành giao hàng 3a Khách hàng không nhận hàng Gửi mail báo cho khách hàng hàng giao yêu cầu khách hàng nhận hàng Kịch phụ 3b Khách hàng yêu cầu hoàn trả hàng Hoàn trả hàng Kiểm tra sản phẩm hoàn trả Hồn trả tiền tốn phí theo quy định ban đầu Ràng buộc phi chức Use case ID U005 Tên Use Case Xem danh sách sản phẩm Khách hàng truy cập website xem hàng để đánh giá sản Tóm tắt phẩm xem chi tiết ḿn mua đăng nhập để tiến hành mua hàng Tác nhân Khách hàng Điều kiện tiên Truy cập website Kết Xem danh sách sản phẩm Truy cập website Kịch Tìm kiếm sản phẩm muốn xem Xem danh sách sản phẩm Kịch phụ Ràng buộc phi chức 21 Use case ID U006 Tên Use Case Cập nhật sản phẩm Tóm tắt Cửa hàng ḿn thêm, xóa, sửa sản phẩm website cần chức cập nhật sản phẩm Tác nhân Admin Điều kiện tiên Đăng nhập với vai trò admin Kết Cập nhật sản phẩm cho cửa hàng Đăng nhập Xem danh sách sản phẩm Kịch Thêm, xóa, sửa sản phẩm Kịch phụ Ràng buộc phi chức Use case ID U007 Tên Use Case Cập nhật chương trình khuyến Cửa hàng theo đợt có chương trình khuyến Tóm tắt cần có chức quản lý điều chỉnh cho chương trình khuyến Tác nhân Admin Điều kiện tiên Đăng nhập với vai trò admin Kết Xem chi tiết sản phẩm tìm kiếm Truy cập website Kịch Chương trình khuyến Điều chỉnh chương trình khuyến 22 Kịch phụ Ràng buộc phi chức Chương Các giao diện đề tài 4.1 Kibana Hình Giao diện dev tool kibana 23 4.2 Studio 3T Hình Giao diện Studio 3T 4.3 Docker Hình Giao diện docker desktop 4.4 Trang chủ 24 25 Hình 4 Giao diện trang web 4.5 Trang admin Hình Giao diện trang admin 4.6 Chi tiết sản phẩm 26 Hình Giao diện chi tiết sản phẩm 4.7 Giỏ hàng Hình Giao diện chi tiết sản phẩm 27 4.8 Bộ lọc sản phẩm Hình Giao diện lọc sản phẩm 4.9 Đăng nhập Hình Giao diện đăng nhập 28 4.10 Đăng ký Hình 10 Giao diện đăng ký tài khoản 29 Tài liệu tham khảo • Elasticsearch docker • Câu lệnh truy vấn liệu Elasticsearch • Trang tài liệu MongoDB • Tìm hiểu Elasticsearch • Đồ án Mongo, React JS • Trang tài liệu Elasticsearch 30 ... 1.1.4 Ưu nhược điểm Elasticsearch 1.1.4.1 • Ưu điểm Tìm kiếm liệu nhanh chóng: Điều có nhờ chế hoạt động Elasticsearch thay tìm kiếm văn trực tiếp, tìm kiếm Index Nó sử dụng cấu trúc Document... liên quan mặt logic Ví dụ: Trong trang web sàn thương mại điện tử, bạn tìm thấy Chỉ mục cho Khách hàng, Chỉ mục cho Sản phẩm,… Chỉ mục sử dụng để tìm kiếm, thêm xóa tài liệu Một khái niệm Index... HTTP Request dữ liệu dạng JSON, sau nhập vào Elasticsearch Các dữ liệu đánh Index (Chỉ mục), giúp đem lại hiệu tìm kiếm cao Đầu tiên, dữ liệu đưa vào Elasticsearch từ nhiều nguồn khác nhau,

Ngày đăng: 28/10/2022, 11:36

Mục lục

  • Chương 1. Kiến thức nền tảng

    • 1.1. Elasticsearch:

      • 1.1.1. Elasticsearch là gì?

      • 1.1.2. Elasticsearch hoạt động như thế nào:

      • 1.1.3. Các khái niệm cần biết về Elasticsearch

        • 1.1.3.1. Document

        • 1.1.3.2. Index

        • 1.1.3.3. Shard

        • 1.1.3.4. Node

        • 1.1.3.5. Cluster

        • 1.1.4. Ưu nhược điểm của Elasticsearch

          • 1.1.4.1. Ưu điểm

          • 1.1.4.2. Nhược điểm

          • 1.1.5. Cách cài đặt:

          • 1.1.6. Các lệnh cơ bản để truy vấn trong Elasticsearch

            • 1.1.6.1. Tạo một index

            • 1.1.6.2. Chỉnh sửa, cập nhật tài liệu

            • 1.1.6.3. Xoá tài liệu

            • 1.1.6.4. Truy vấn tìm kiếm cơ bản

            • 1.2. Kibana

            • 1.3. Docker

              • 1.3.1. Giới thiệu

              • 1.3.2. Container

              • 1.3.3. Khái niệm liên quan

              • 1.4. MongoDB

                • 1.4.1. Giới thiệu MongoDB

                • 1.4.2. Một số câu lệnh cơ bản trên MongoDB

Tài liệu cùng người dùng

Tài liệu liên quan