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

Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp

94 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 đề Nghiên Cứu Máy Tìm Kiếm Ứng Dụng Xây Dựng Thử Nghiệm Công Cụ Tìm Kiếm Toàn Văn Bản Thông Tin Bài Báo Trên Tạp Chí Khoa Học Và Công Nghệ Trường Đại Học Lâm Nghiệp
Tác giả Bùi Văn Mạnh
Người hướng dẫn ThS. Trần Xuân Hòa
Trường học Trường Đại Học Lâm Nghiệp
Chuyên ngành Hệ Thống Thông Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 94
Dung lượng 3,34 MB

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

Cấu trúc

  • 1.1. Tình hình ứng dụng máy tìm kiếm trên Thế Giới (12)
    • 1.1.1. Google (12)
    • 1.1.2. GoogleScholar (12)
    • 1.1.3. RefSeek (12)
    • 1.1.4. Citeulike (13)
    • 1.1.5. iSeek (13)
  • 1.2. Tình hình ứng dụng máy tìm kiếm tại Việt Nam (14)
    • 1.2.1. Cốc cốc (14)
  • 1.3. Mục tiêu nghiên cứu (14)
    • 1.3.1. Mục tiêu chung (14)
    • 1.3.2. Mục tiêu cụ thể (14)
  • 1.4. Nội dung nghiên cứu (14)
  • 1.5. Đối tượng và phạm vi nghiên cứu (15)
    • 1.5.1. Đối tương nghiên cứu (15)
    • 1.5.2. Phạm vi nghiên cứu (15)
  • 1.6. Phương pháp nghiên cứu (15)
  • CHƯƠNG 2 NGHIÊN CỨU CƠ SỞ LÝ THUYẾT (12)
    • 2.1. Máy tìm kiếm (Search Engine) (16)
      • 2.1.1. Hoạt động của Máy tìm kiếm (16)
      • 2.1.2. Hệ thống máy tìm kiếm Search Engine (16)
      • 2.1.3. Máy truy vấn dữ liệu (17)
    • 2.2. Một số công cụ tìm kiếm (17)
      • 2.2.1. ElasticSearch (17)
      • 2.2.2. Apache Solr (25)
      • 2.2.3. Lucene (26)
    • 2.3. Ngôn ngữ lập trình (27)
      • 2.3.1. Ngôn ngữ lập trình Python (27)
      • 2.3.2. Ngôn ngữ lập trình C# (28)
      • 2.3.3. Ngôn ngữ lập trình Java (29)
      • 2.3.4. Ngôn ngữ lập trình PHP (29)
      • 2.3.5. Ngôn ngữ lập trình C++ (30)
    • 2.4. Khung phát triển phần mềm (31)
      • 2.4.1. Django Framework (31)
      • 2.4.2. Flask Framework (32)
      • 2.4.3. Entity Framework (32)
      • 2.4.4. ABP Framework (32)
    • 2.5. Chuẩn dịch vụ (33)
    • 2.6. Hệ quản trị cơ sở dữ liệu (35)
      • 2.6.1. PostgreSQL (35)
      • 2.6.2. MySQL (36)
      • 2.6.3. SQL Server (37)
      • 2.6.4. Oracle (37)
      • 2.6.5. MongoDB (38)
    • 2.7. Máy chủ web (39)
      • 2.7.1. IIS (39)
      • 2.7.2. Nginx (39)
      • 2.7.3. Apache HTTP (40)
      • 2.7.4. Apachi Tomcat (40)
    • 2.8. Một số công nghệ khác (41)
      • 2.8.1. HTML (41)
      • 2.8.2. CSS (41)
      • 2.8.3. JavaScript (42)
      • 2.8.4. Bootstrap (43)
    • 3.1. Lựa chọn công nghệ phát triển (44)
      • 3.1.1. Các tiêu chí lựa chọn (44)
      • 3.1.2. Danh mục lựa chọn (44)
    • 3.2. Xây dựng kiến trúc hệ thống và mô hình triển khai (45)
      • 3.2.1. Mô hình kiến trúc hệ thống (45)
      • 3.2.2. Mô hình triển khai phần mềm (46)
      • 3.2.3. Mô hình triển khai vật lý (46)
    • 3.3. Thiết kế phần mềm (47)
      • 3.3.1. Danh sách tác nhân (47)
      • 3.3.2. Danh sách chức năng (47)
      • 3.3.3. Thiết kế cơ sở dữu liệu (49)
      • 3.3.4. Biểu đồ phân rã chức năng (53)
      • 3.3.5. Biểu đồ trình tự (65)
    • 3.4. Lập trình phần mềm (79)
      • 3.4.1. Các mô đun chức năng (79)
      • 3.4.2. Các đoạn mã, hàm xử lý chức năng (79)
      • 3.4.3. Kết quả lập trình và giao diện phần mềm (82)
    • 3.5. Kiểm thử chức năng phần mềm (86)
  • CHƯƠNG 4 KẾT LUẬN – TỒN TẠI – KIẾN NGHỊ (16)
    • 4.1. Kết luận (93)
    • 4.2. Tồn tại (93)
    • 4.3. Kiến nghị (93)
  • TÀI LIỆU THAM KHẢO (94)

Nội dung

Tình hình ứng dụng máy tìm kiếm trên Thế Giới

Google

Google là công cụ tìm kiếm hàng đầu hiện nay, chiếm 74,52% thị phần tìm kiếm trên máy tính theo báo cáo của netmarketshare vào tháng 01 năm 2018 Trên thiết bị di động, Google cũng dẫn đầu với khoảng 93% thị phần.

GoogleScholar

“nhánh” của các tìm kiếm thường xuyên được thực hiện trên Google

Thay vì tìm kiếm theo kiểu chung chung, có thể sử dụng Google

Scholar để tìm kiếm các đầu sách, các bài nghiên cứu và thậm chí là cả thông tin về những vụ kiện ở tòa án

Trên trang chính của Google Scholar, bạn chỉ cần nhập cụm từ cần tra cứu Hệ thống sẽ lọc cơ sở dữ liệu và cung cấp các ví dụ liên quan Đối với các nghiên cứu nhạy cảm với thời gian, như công nghệ, bạn có thể sử dụng các tùy chọn bên trái để điều chỉnh độ "mới" của thông tin tìm kiếm.

Nếu bạn cần hoàn thành một sản phẩm với yêu cầu nghiêm ngặt về nguồn, Google Scholar sẽ cung cấp trích dẫn mẫu từ các nguồn đáng tin cậy Hãy tìm mẫu phù hợp với tiêu chuẩn của công trình cá nhân và sao chép trực tiếp vào trích dẫn để tiết kiệm thời gian.

RefSeek

RefSeek, mặc dù mới ra mắt, đã trở thành một công cụ tìm kiếm đáng tin cậy cho các nghiên cứu Nó cung cấp phương pháp hiệu quả để tìm kiếm thông tin phục vụ cho nhiều lĩnh vực nghiên cứu khác nhau.

Công cụ tìm kiếm Google Scholar tập trung vào việc cung cấp các trang web đáng tin cậy và liên quan cho các lĩnh vực nghiên cứu khác nhau Trong khi đó, RefSeek là một lựa chọn tuyệt vời để tổng hợp nhiều bài viết và thông tin liên quan đến một chủ đề cụ thể Chẳng hạn, khi tìm hiểu về bộ xử lý của máy tính, RefSeek sẽ cung cấp nhiều bài viết hữu ích cùng một lúc.

Citeulike

Citeulike là một công cụ tìm kiếm giáo dục mạnh mẽ, giúp người dùng tìm kiếm các bài báo và nghiên cứu cụ thể Sau khi nhập từ khóa, Citeulike sẽ hiển thị tất cả các nghiên cứu liên quan đến chủ đề đó Những bài viết được đánh giá có độ xác thực cao sẽ có dấu tích bên cạnh Người dùng có thể xem các nhóm thông tin liên quan và tóm tắt nhanh cho mỗi bài viết trước khi truy cập phiên bản đầy đủ, đồng thời ẩn các chi tiết không cần thiết để duyệt nhanh hơn.

iSeek

iSeek là một công cụ tìm kiếm học thuật hữu ích, mặc dù chỉ hiển thị 10 kết quả mỗi trang Đừng để số lượng kết quả có vẻ khiêm tốn đánh lừa bạn, vì nếu tìm kiếm thông tin phổ biến trong lĩnh vực khoa học, sẽ có nhiều trang liên quan Nếu bạn cảm thấy kết quả quá nhiều và khó theo dõi, hãy sử dụng bộ lọc để tinh chỉnh tìm kiếm của mình.

Hình 1.2 Công cụ tìm kiếm Citeulike

Hình 1.3 Công cụ tìm kiếm iSeek

Tình hình ứng dụng máy tìm kiếm tại Việt Nam

Cốc cốc

Cốc Cốc là công cụ tìm kiếm mặc định trên trình duyệt Cốc Cốc và được phát triển bởi Công ty

Công ty TNHH Công nghệ Cốc Cốc ra mắt vào năm 2013, với công cụ tìm kiếm Cốc Cốc được thiết kế đặc biệt để tối ưu hóa khả năng xử lý ngôn ngữ tiếng Việt, nhằm cung cấp các kết quả tìm kiếm phù hợp với nhu cầu của người dùng Việt Nam.

Mục tiêu nghiên cứu

Mục tiêu chung

Nghiên cứu máy tìm kiếm nhằm cải thiện hiệu quả tìm kiếm thông tin bài báo khoa học trên Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp thông qua việc sử dụng từ khóa, đồng thời tự động gợi ý và hoàn thành các truy vấn.

Mục tiêu cụ thể

Nắm bắt hiện trạng dữ liệu bài báo khoa học trên Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp

Nghiên cứu khả năng ứng dụng máy tìm kiếm, kỹ thuật và cơ chế hoạt động của máy tìm kiếm

Nghiên cứu công nghệ và kỹ thuật lập trình: RESTful API, Xử lý đa luồng (Multi-threaded), …

Xây dựng và thử nghiệm công cụ tìm kiếm toàn văn bản cho thông tin bài báo trên Tạp chí Khoa học và Công nghệ của Trường Đại học Lâm nghiệp, đồng thời đánh giá và so sánh hiệu quả của công cụ này.

Nội dung nghiên cứu

Để hoàn thành mục tiêu của khóa luận đã đưa ra, cần tiến hành nghiên cứu và thực hiện các công việc sau đây:

Nội dung 1: Khảo sát thực trạng dữ liệu bài báo khoa học trên Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp

Hình 1.4 Công cụ tìm kiếm Cốc cốc

Nội dung 2: Nghiên cứu về máy tìm kiếm

Nội dung 3: Nghiên cứu về các công nghệ phát triển web như: Python, Django Framework, RESTful API, …

Phân tích thiết kế hệ thống và xây dựng công cụ tìm kiếm toàn văn bản thông tin bài báo trên Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp là một nhiệm vụ quan trọng nhằm cải thiện khả năng truy cập và tìm kiếm thông tin khoa học Công cụ này sẽ giúp người dùng dễ dàng tìm kiếm và khai thác các bài báo, từ đó nâng cao hiệu quả nghiên cứu và học tập trong lĩnh vực khoa học và công nghệ.

NGHIÊN CỨU CƠ SỞ LÝ THUYẾT

Máy tìm kiếm (Search Engine)

Máy tìm kiếm, hay còn gọi là Search Engine (SE), là một hệ thống hoạt động để quét và lập chỉ mục thông tin từ các website trên internet Chức năng chính của máy tìm kiếm là giúp người dùng dễ dàng tìm kiếm thông tin khi gửi truy vấn đến hệ thống máy chủ của nó.

2.1.1 Hoạt động của Máy tìm kiếm

Máy tìm kiếm hoạt động bằng cách theo dõi các liên kết giữa các website và lập chỉ mục nội dung Khi người dùng nhập từ khóa để tìm kiếm, máy tìm kiếm sẽ trích xuất dữ liệu từ máy chủ và hiển thị kết quả theo thứ hạng dựa trên các tiêu chí đánh giá khác nhau, nhằm cung cấp kết quả phù hợp nhất với nhu cầu của người dùng Theo thời gian, các thuật toán của máy tìm kiếm ngày càng được cải tiến và hiện đại hóa, giúp nâng cao hiệu quả tìm kiếm.

2.1.2 Hệ thống máy tìm kiếm Search Engine

 Bộ thu thập thông tin – Robot

Robot là chương trình tự động thu thập tài liệu qua các cấu trúc siêu liên kết, hoạt động theo cách đệ quy để nhận về tất cả tài liệu liên quan Chúng được gọi bằng nhiều tên như spider, web wanderer hay web worm, nhưng những tên này có thể gây nhầm lẫn Thực chất, robot chỉ là chương trình duyệt thông tin từ các trang web theo giao thức web, khác với trình duyệt thông thường, vốn không hoạt động tự động mà cần có sự tác động của con người.

 Bộ lập chỉ mục – Index

Hệ thống lập chỉ mục, hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện việc phân tích và trích chọn thông tin cần thiết từ dữ liệu mà robots thu thập Nó tổ chức các thông tin này thành cơ sở dữ liệu riêng, giúp tìm kiếm nhanh chóng và hiệu quả Hệ thống chỉ mục là danh sách các từ khoá, chỉ rõ từ khoá nào xuất hiện ở trang nào và địa chỉ nào.

 Bộ tìm kiếm thông tin – Search Engine

Cụm từ "search engine" chỉ toàn bộ hệ thống bao gồm bộ thu thập thông tin, bộ lập chỉ mục và bộ tìm kiếm thông tin, hoạt động liên tục và phụ thuộc lẫn nhau về dữ liệu nhưng độc lập về hoạt động Search engine tương tác với người dùng qua giao diện web, có nhiệm vụ tiếp nhận và trả về tài liệu phù hợp với yêu cầu của người dùng.

 Nguyên lý hoạt động của Search Engine

Các công cụ tìm kiếm sử dụng robots để thu thập thông tin trên internet thông qua các siêu liên kết Khi phát hiện một trang web mới, robots sẽ gửi tài liệu về máy chủ chính để tạo cơ sở dữ liệu chỉ mục phục vụ cho việc tìm kiếm Do thông tin trên mạng liên tục thay đổi, robots cần cập nhật các trang cũ thường xuyên, với tần suất phụ thuộc vào từng hệ thống tìm kiếm Khi nhận được truy vấn từ người dùng, công cụ tìm kiếm sẽ phân tích và tìm kiếm trong cơ sở dữ liệu chỉ mục để trả về các tài liệu phù hợp.

2.1.3 Máy truy vấn dữ liệu

Máy truy tìm dữ liệu trực tuyến, hay còn gọi là công cụ tìm kiếm, là phần mềm tích hợp trên các trang web giúp người dùng tìm kiếm thông tin trên Internet Các máy tìm kiếm hoạt động dựa trên một cơ sở dữ liệu khổng lồ, cho phép tìm kiếm tài liệu dựa vào các từ khóa mà người dùng nhập vào, từ đó trả về danh sách các trang web có chứa các từ khóa đó.

Bạn có thể gửi dữ liệu JSON lên ElasticSearch qua API, nơi hệ thống tự động lưu trữ văn bản gốc và thêm tham chiếu tìm kiếm vào chỉ mục Điều này cho phép bạn tìm và truy xuất văn bản dễ dàng thông qua ElasticSearch API Ngoài ra, bạn có thể sử dụng Kibana, một công cụ trực quan hóa mã nguồn mở, để trực quan hóa dữ liệu và tạo bảng thông tin tương tác cùng với Elasticsearch.

Một số công cụ tìm kiếm

ElasticSearch cung cấp khả năng truy cập vào các chức năng đánh chỉ mục và tìm kiếm dữ liệu của Lucene Nó có nhiều tùy chọn cho việc xử lý văn bản và cách lưu trữ các văn bản đã được xử lý.

Khi tìm kiếm, ElasticSearch cung cấp nhiều câu truy vấn và bộ lọc để lựa chọn, hiển thị chức năng này qua REST API Điều này cho phép người dùng cấu hình câu truy vấn bằng JSON và điều chỉnh hầu hết các cấu hình, ngay cả khi chúng sử dụng cùng một API.

ElasticSearch không chỉ cung cấp các chức năng cơ bản mà còn bổ sung nhiều tính năng cao cấp, bao gồm bộ nhớ đệm và phân tích thời gian thực Hệ thống cho phép sắp xếp tài liệu một cách linh hoạt, với khả năng tìm kiếm nhiều chỉ mục riêng lẻ hoặc kết hợp, đồng thời hỗ trợ nhiều loại tài liệu khác nhau trong mỗi chỉ mục.

Elasticsearch, đúng như tên gọi của nó, có khả năng co giãn (elastic) và được phân cụm theo mặc định, cho phép hoạt động như một cụm (cluster) ngay cả khi chỉ có một máy chủ duy nhất Hệ thống này luôn có khả năng mở rộng bằng cách thêm nhiều máy chủ để tăng dung lượng hoặc khả năng chịu lỗi Những ưu điểm nổi bật của Elasticsearch bao gồm khả năng mở rộng linh hoạt và tính năng chịu lỗi cao.

- Là phần mềm mã nguồn mở, hoàn toàn miễn phí, cộng đồng phát triển lớn

Elasticsearch nổi bật với tốc độ nhanh chóng trong việc thực hiện các truy vấn phức tạp, đồng thời có khả năng lưu trữ cấu trúc truy vấn vào bộ nhớ đệm để tối ưu hóa quá trình lọc kết quả.

- Hỗ trợ Full-text search: với các tính năng như tách từ, tách câu, tạo chỉ mục cho dữ liệu

- Hỗ trợ tìm kiếm mờ, tự động hoàn thành (autocomplete): giúp bạn có thể tìm ra kết quả kể cả khi bạn viết sai chính tả

- Cung cấp Restful API cho phép xử lý các yêu cầu với các API Restful request

- Dữ liệu lưu dưới dạng document oriented, free schema nên rất linh hoạt cho những trường hợp dữ liệu thường xuyên thay đổi cấu trúc

Khả năng mở rộng và tính sẵn có cao của hệ thống được đảm bảo nhờ mô hình cluster với nhiều node tham gia xử lý dữ liệu Khi một node gặp sự cố, luồng xử lý vẫn diễn ra bình thường, và việc mở rộng hệ thống chỉ cần thêm node mới.

- Ghi nhật ký và phân tích nhật ký

- Cơ sở hạ tầng và giám sát container

- Giám sát hiệu suất ứng dụng

- Phân tích dữ liệu không gian địa lý và trực quan hóa

2.2.1.2 Các khi niệm cơ bản của ElasticSearch

Elasticsearch sử dụng đơn vị nhỏ nhất để lưu trữ dữ liệu, đó là JSON object, để lưu trữ thông tin cơ bản.

Trong Elasticsearch, cấu trúc tìm kiếm được gọi là inverted index cho phép thực hiện tìm kiếm toàn văn (full-text search) Quá trình này diễn ra bằng cách tách các văn bản thành từng từ có nghĩa, sau đó ánh xạ chúng với văn bản gốc, giúp trả về kết quả cụ thể khi thực hiện tìm kiếm.

Có 2 kiểu đánh index và forward index và inverted index Bản chất của inverted index là đánh theo keyword: words  pages còn forward đánh theo nội dung page  words

Using keywords for searching is more efficient than searching through individual pages Elasticsearch leverages Apache Lucene to manage and create inverted indexes.

Shard là một đối tượng của Lucence, là tập hợp con của một Index Một index có thể được lưu trên nhiều shard

Một node bao gồm nhiều Shard, shard chính là đối tượng nhỏ nhât hoạt động ở mức thấp nhất, đóng vai trò lưu trữ dữ liệu

Elasticsearch sẽ tự động quản lý việc giao tiếp và thay đổi các shard, vì vậy chúng ta không cần phải làm việc trực tiếp với chúng.

Elasticsearch có hai loại shard: primary shard và replica shard Primary shard chịu trách nhiệm lưu trữ dữ liệu và thực hiện việc đánh chỉ mục Sau khi hoàn tất, dữ liệu sẽ được chuyển đến các replica shard Mặc định, mỗi index trong Elasticsearch có 5 primary shard và đi kèm với 1 replica shard.

Replica shard là nơi lưu trữ dữ liệu nhân bản của Elasticsearch, giúp đảm bảo tính toàn vẹn dữ liệu khi Primary shard gặp sự cố Ngoài ra, việc cấu hình nhiều Replica shard hơn mức mặc định còn giúp tăng tốc độ tìm kiếm.

Elasticsearch là trung tâm hoạt động chính, nơi lưu trữ dữ liệu và thực hiện việc đánh chỉ mục cho cluster, đồng thời hỗ trợ các thao tác tìm kiếm hiệu quả.

Các node trong một cluster hoạt động cùng nhau và chia sẻ thuộc tính tên cluster Mỗi cluster cần có một tên riêng biệt, không được trùng lặp, vì việc trùng tên giữa các cluster Elasticsearch sẽ gây ra lỗi cho các node Do đó, khi cấu hình, cần chú ý đến việc đặt tên cho các cluster.

Mỗi cluster bao gồm một node chính gọi là master, được tự động lựa chọn và có khả năng thay đổi khi có sự cố Một cluster có thể chứa nhiều nodes, và các nodes này có thể hoạt động trên cùng một server Tuy nhiên, để đảm bảo tính khả dụng, một cluster thường bao gồm nhiều nodes hoạt động trên các server khác nhau, giúp duy trì chức năng khi một server gặp sự cố Các node trong cluster có thể kết nối và hoạt động cùng nhau thông qua giao thức Unicast.

Ngôn ngữ lập trình

Hiện nay, nhiều dự án công nghệ thông tin đang được áp dụng trong các lĩnh vực khác nhau của cuộc sống Tùy thuộc vào tính chất của từng dự án, phần mềm có thể được phát triển bằng nhiều ngôn ngữ lập trình khác nhau Với kiến thức vững về ngôn ngữ lập trình, các chuyên gia có thể nhanh chóng lựa chọn ngôn ngữ phù hợp cho từng đề án cụ thể.

Các NNLT phổ biến được sử dụng trong các dự án lớn hiện tại có những ngôn ngữ sau:

2.3.1 Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình thông dịch, hướng đối tượng và bậc cao với ngữ nghĩa động Ngôn ngữ này hỗ trợ các module và gói, khuyến khích việc lập trình module hóa và tái sử dụng mã Trình thông dịch Python cùng với thư viện chuẩn có sẵn dưới dạng mã nguồn hoặc nhị phân miễn phí cho tất cả các nền tảng chính và có thể được phân phối tự do.

Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ ràng

Python dễ đọc và viết hơn nhiều so với các ngôn ngữ lập trình khác như C++, Java, và C# Ngôn ngữ này mang đến sự thú vị trong lập trình, giúp bạn tập trung vào việc tìm kiếm giải pháp thay vì lo lắng về cú pháp.

Mã nguồn mở miễn phí cho phép người dùng tự do sử dụng và chỉnh sửa phần mềm viết bằng Python Cộng đồng Python lớn mạnh luôn nỗ lực cải thiện và cập nhật phần mềm, mang lại những tính năng mới và hiệu suất tốt hơn.

Khả năng di chuyển của các chương trình Python cho phép chúng chạy trên nhiều nền tảng khác nhau như Windows, MacOS và Linux mà không cần thay đổi Điều này giúp Python hoạt động liền mạch trên hầu hết các hệ điều hành.

Khả năng mở rộng và nhúng của Python cho phép bạn dễ dàng tích hợp các đoạn mã viết bằng C, C++ và các ngôn ngữ khác vào ứng dụng, đặc biệt khi ứng dụng yêu cầu sự phức tạp cao.

Ngôn ngữ Python là một ngôn ngữ thông dịch cấp cao, giúp lập trình viên không phải lo lắng về việc quản lý bộ nhớ hay dọn dẹp dữ liệu không cần thiết như trong C/C++ Khi chạy chương trình Python, ngôn ngữ này tự động chuyển đổi mã nguồn sang ngôn ngữ máy tính, cho phép người dùng tập trung vào việc phát triển ứng dụng mà không cần quan tâm đến các hoạt động ở cấp thấp.

Python sở hữu một kho thư viện tiêu chuẩn phong phú, giúp đơn giản hóa công việc lập trình bằng cách giảm thiểu khối lượng mã cần viết.

Trong Python, mọi thứ đều được xây dựng dựa trên hướng đối tượng (OOP), giúp giải quyết các vấn đề phức tạp một cách trực quan OOP cho phép phân chia các vấn đề lớn thành những phần nhỏ hơn thông qua việc tạo ra các đối tượng Python còn hỗ trợ nhiều thư viện mạnh mẽ cho xử lý dữ liệu không gian và bản đồ như GDAL/OGC, Arcpy, Geopandas, PyProj, Shapely, Fiona, Folium, cùng với các thư viện cho khoa học dữ liệu và phân tích dữ liệu như Numpy, Pandas.

Python không có các thuộc tính protected, private hay public; không có vòng lặp do while và switch case

.NET Core là phiên bản mới của NET Framework, là nền tảng phát triển miễn phí và mã nguồn mở do Microsoft duy trì Nó hỗ trợ đa nền tảng, cho phép chạy trên các hệ điều hành Windows, macOS và Linux.

.NET Core Framework hỗ trợ phát triển đa dạng ứng dụng, bao gồm ứng dụng di động, máy tính để bàn, web, đám mây, IoT, máy học, microservices và trò chơi.

.NET Core được thiết kế từ đầu với mục tiêu tạo ra một Framework mô-đun, nhẹ, nhanh và đa nền tảng Nó bao gồm các tính năng cốt lõi cần thiết để vận hành một ứng dụng NET Core cơ bản, trong khi các tính năng bổ sung được cung cấp dưới dạng gói NuGet, cho phép người dùng thêm vào ứng dụng khi cần Nhờ đó, ứng dụng NET Core không chỉ tăng tốc hiệu suất mà còn giảm dung lượng bộ nhớ và dễ dàng bảo trì hơn.

.NET Core là một framework nguồn mở được duy trì bởi microsoft và có sẵn trên GitHub theo giấy phép MIT và Apache 2

.NET Core hỗ trợ chạy trên các hệ điều hành Windows, MacOS và Linux, với thời gian chạy khác nhau cho mỗi hệ điều hành, nhưng vẫn đảm bảo tạo ra cùng một đầu ra.

Thực thi mã với cùng một hành vi trong các kiến trúc tập lệnh khác nhau, bao gồm x64, x86 và ARM

Nền tảng NET Core cho phép phát triển và triển khai nhiều loại ứng dụng đa dạng, bao gồm ứng dụng di động, máy tính để bàn, web, đám mây, IoT, máy học, microservices và trò chơi.

Programming languages such as C#, F#, and Visual Basic can be utilized to develop NET Core applications Development can be carried out using various IDEs, including Visual Studio 2017/2019, Visual Studio Code, Sublime Text, and Vim.

Hỗ trợ cách tiếp cận kiến trúc mô-đun bằng cách sử dụng các gói NuGet

Khung phát triển phần mềm

Khung phát triển phần mềm (framework) là tập hợp các đoạn mã đã được viết sẵn, tạo thành một bộ khung và các thư viện lập trình Chúng cung cấp những tính năng sẵn có như mô hình, giao diện lập trình và các yếu tố khác, giúp tối giản quá trình phát triển ứng dụng và tiết kiệm thời gian.

Có thể có nhiều khung phát triển phần mềm khác nhau cho mỗi ngôn ngữ lập trình lựa chọn

Django là một web framework mã nguồn mở miễn phí, được phát triển bằng ngôn ngữ Python và dựa trên mô hình MTV (Model-Template-Views) Framework này hiện đang được quản lý và phát triển bởi Django Software Foundation.

Django được phát triển nhằm hỗ trợ thiết kế các website phức tạp dựa trên cơ sở dữ liệu có sẵn Nó áp dụng nguyên lý "cắm" các thành phần và tái sử dụng, giúp tạo ra các website với ít mã nguồn, ít khớp nối, khả năng mở rộng và tránh trùng lặp.

Django mang lại lợi thế lớn về tốc độ, cho phép các nhà phát triển nhanh chóng xây dựng ứng dụng và trang web Nếu bạn cần ra mắt một cổng thông tin trong thời gian ngắn, Django là sự lựa chọn lý tưởng để đáp ứng yêu cầu đó.

Django cung cấp một môi trường làm việc an toàn cho lập trình viên, giúp họ tránh được các lỗi bảo mật phổ biến như nhấp chuột, kịch bản chéo trang, SQL tiêm và giả mạo yêu cầu Nhờ vào những tính năng bảo mật này, sản phẩm được phát triển bằng framework Django có khả năng bảo mật rất cao.

Django cung cấp tính năng mở rộng cao, giúp lập trình viên quản lý lưu lượng truy cập hiệu quả, phù hợp cho các trang web có lượng người truy cập lớn Đặc biệt, Django hỗ trợ khung phát triển GeoDjango, cho phép xây dựng các ứng dụng Web GIS và khai thác sức mạnh của dữ liệu không gian.

Không dành cho các dự án nhỏ

Flask là một micro-framework web được phát triển bằng ngôn ngữ lập trình Python, cho phép xây dựng các ứng dụng web từ đơn giản đến phức tạp Với Flask, bạn có thể tạo ra các API nhỏ, trang web, blog, trang wiki, hoặc thậm chí là các trang web thương mại.

Flask Python dễ dàng cài đặt và triển khai, cho phép lập trình viên chỉ cần vài dòng lệnh để xây dựng các ứng dụng đơn giản.

Tốc độ xử lý nhanh

Có khả năng hỗ trợ NoQuery

Cần phải tự tìm hiểu các tác vụ tiện ích mở rộng

Entity Framework Core (EF Core) is a new object-database mapping framework for NET It supports LINQ queries, change tracking, updates, and schema modifications EF Core is compatible with SQL Server, SQL Azure, SQLite, and Azure Cosmos.

DB, MySQL, PostgreSQL và nhiều cơ sở dữ liệu khác thông qua mô hình plugin của cơ sở dữ liệu

Mô hình hóa (Modeling): Cho phép tạo các mộ hình dữ liệu thực thể

Cross-Platform: Entity framework hỗ trợ đa nền tảng cho phép chạy trên Mac, Windows và Linux

Khung ABP cung cấp kiến trúc lý tưởng cho việc phát triển giải pháp phần mềm doanh nghiệp, áp dụng các phương pháp tốt nhất trên nền tảng NET và ASP.NET Core Nó bao gồm cơ sở hạ tầng cơ bản, các mẫu khởi động sẵn sàng cho sản xuất, mô-đun, giao diện, công cụ, hướng dẫn và tài liệu, giúp triển khai kiến trúc một cách chính xác và tự động hóa các công việc lặp lại.

Miễn phí, mã nguồn mở: Có thể xây dựng website hoặc là nền tảng để xây dựng các ứng dụng trên thiết bị di động

ABP Framework vẫn đang trong quá trình hoàn thiện và phát triển.

Chuẩn dịch vụ

RESTful API là tiêu chuẩn thiết kế API cho ứng dụng web, giúp quản lý tài nguyên hiệu quả Tiêu chuẩn này tập trung vào các tài nguyên hệ thống như tệp văn bản, hình ảnh, âm thanh, video và dữ liệu động, với các trạng thái tài nguyên được định dạng và truyền tải qua giao thức HTTP.

Diễn giải các thành phần:

API (Giao diện lập trình ứng dụng) là tập hợp các quy tắc và cơ chế cho phép các ứng dụng hoặc thành phần tương tác với nhau Nó có khả năng cung cấp dữ liệu cần thiết cho ứng dụng của bạn dưới các định dạng phổ biến như JSON hoặc XML.

REST (REpresentational State Transfer) là một kiến trúc API sử dụng phương thức HTTP để giao tiếp giữa các máy Thay vì chỉ sử dụng một URL để xử lý thông tin người dùng, REST gửi các yêu cầu HTTP như GET, POST, DELETE đến URL để quản lý dữ liệu.

RESTful API là tiêu chuẩn thiết kế API phổ biến hiện nay, cho phép các ứng dụng web và di động giao tiếp hiệu quả với nhau.

Chức năng chính của REST là quy định cách sử dụng các phương thức HTTP như GET, POST, PUT, DELETE và cách định dạng URL cho ứng dụng web nhằm quản lý các tài nguyên RESTful không giới hạn logic mã ứng dụng và không bị ràng buộc bởi ngôn ngữ lập trình, cho phép bất kỳ ngôn ngữ hoặc framework nào cũng có thể được sử dụng để thiết kế một API RESTful.

Cơ chế hoạt động của RESTful API

Hình 2.4: Mô hình hoạt động của Restful

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng

- GET (SELECT): Trả về một Resource hoặc một danh sách Resource

- POST (CREATE): Tạo mới một Resource

- PUT (UPDATE): Cập nhật thông tin cho Resource

- DELETE (DELETE): Xoá một Resource

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa

Khi gửi request một API nào đó thường thì sẽ có các status code để nhận biết sau:

- 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE

- 201 Created – Trả về khi một Resouce vừa được tạo thành công

- 204 No Content – Trả về khi Resource xoá thành công

- 304 Not Modified – Client có thể sử dụng dữ liệu cache

- 400 Bad Request – Request không hợp lệ

- 401 Unauthorized – Request cần có auth

- 403 Forbidden – bị từ chối không cho phép

- 404 Not Found – Không tìm thấy resource từ URI

- 405 Method Not Allowed – Phương thức không cho phép với user

- 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ

- 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này

- 422 Unprocessable Entity – Dữ liệu không được xác thực

- 429 Too Many Requests – Request bị từ chối do bị giới hạn

Hệ quản trị cơ sở dữ liệu

Để duy trì hệ thống với dữ liệu ngày càng lớn, cần một hệ quản trị cơ sở dữ liệu mạnh mẽ và tối ưu, có khả năng lưu trữ khối lượng dữ liệu lớn, xây dựng kho dữ liệu và đảm bảo hiệu suất truy xuất dữ liệu hiệu quả.

PostgreSQL is an advanced, open-source object-relational database management system designed for general-purpose use.

PostgreSQL được phát triển để hoạt động trên các hệ điều hành tương tự UNIX, nhưng sau đó đã được điều chỉnh để tương thích với nhiều nền tảng khác như Mac OS X, Solaris và Windows.

PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định cao

Do đó, nếu phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn so với các hệ thống quản trị dữ liệu khác

PostgreSQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ với nhiều tính năng hỗ trợ cho việc phát triển ứng dụng và bảo vệ toàn vẹn dữ liệu Nó cung cấp một môi trường chịu lỗi, giúp quản lý dữ liệu hiệu quả cho cả tập dữ liệu lớn và nhỏ Là một hệ thống nguồn mở và miễn phí, PostgreSQL còn cho phép mở rộng linh hoạt, bao gồm việc định nghĩa kiểu dữ liệu riêng, xây dựng hàm tùy chỉnh và tích hợp mã từ các ngôn ngữ lập trình khác mà không cần biên dịch lại cơ sở dữ liệu.

PostgreSQL tuân thủ tiêu chuẩn SQL mà không làm mất đi các tính năng truyền thống, giúp tránh những quyết định kiến trúc không hợp lý Mặc dù nhiều tính năng theo tiêu chuẩn SQL được hỗ trợ, cú pháp và hàm có thể có sự khác biệt nhỏ.

PostgreSQL là hệ thống quản lý cơ sở dữ liệu tiên phong trong việc triển khai tính năng kiểm soát đồng thời nhiều phiên bản (MVCC), vượt qua cả Oracle Tính năng MVCC của PostgreSQL tương tự như các snapshot riêng biệt trong Oracle.

PostgreSQL là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng, cho phép người dùng thêm các tính năng tùy chỉnh được phát triển bằng nhiều ngôn ngữ lập trình khác nhau như C/C++ và Java.

Mã nguồn mở PostgreSQL được cung cấp miễn phí theo giấy phép nguồn mở, cho phép người dùng tự do sử dụng, sửa đổi và triển khai theo nhu cầu của mình.

Khả năng chịu lỗi: Ghi nhật ký viết trước của PostgreSQL làm cho nó trở thành một cơ sở dữ liệu có khả năng chịu lỗi cao

PostgreSQL cung cấp hỗ trợ cho các đối tượng địa lý, cho phép bạn triển khai dịch vụ dựa trên vị trí và hệ thống thông tin địa lý một cách hiệu quả.

Postgres không thuộc sở hữu của một tổ chức, điều này đã gây khó khăn trong việc xây dựng thương hiệu, mặc dù nó sở hữu đầy đủ tính năng và có thể so sánh với các hệ thống DBMS khác.

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến, được ưa chuộng bởi các nhà phát triển ứng dụng nhờ vào tốc độ cao, tính ổn định và dễ sử dụng Hệ thống này có khả năng hoạt động trên nhiều hệ điều hành và cung cấp nhiều hàm tiện ích mạnh mẽ Với tính bảo mật cao, MySQL là lựa chọn lý tưởng cho các ứng dụng truy cập cơ sở dữ liệu trên internet.

MySQL là hệ quản trị cơ sở dữ liệu an toàn và đáng tin cậy, được sử dụng rộng rãi trong các ứng dụng web phổ biến như WordPress, Drupal, Joomla, Facebook và Twitter.

MySQL cung cấp một khung công cụ lưu trữ độc lập, cho phép quản trị viên hệ thống tối ưu hóa cấu hình máy chủ cơ sở dữ liệu nhằm đạt được hiệu suất tối ưu.

MySQL không hỗ trợ cơ sở dữ liệu lớn một cách hiệu quả

MySQL không có một công cụ phát triển và gỡ lỗi tốt như so với cơ sở dữ liệu trả phí

MySQL không hỗ trợ các ràng buộc kiểm tra SQL

Có một số vấn đề về tính ổn định

SQL Server là phần mềm quản trị cơ sở dữ liệu mạnh mẽ, hoạt động trên hệ điều hành Microsoft Windows Server, và là một trong những sản phẩm chủ lực của Microsoft trong lĩnh vực cơ sở dữ liệu Nó cạnh tranh với các hệ quản trị cơ sở dữ liệu lớn như Oracle, Sybase, và DB2 SQL Server đã được áp dụng rộng rãi trong doanh nghiệp, với nhiều cơ sở dữ liệu lớn như MySpace và Yahoo sử dụng nhờ khả năng mở rộng, linh hoạt trong thay đổi mô hình, và nhiều phương án sao lưu dữ liệu, giúp triển khai nhanh chóng các giải pháp phần mềm mới.

Quản lý hệ thống cơ sở dữ liệu trở nên dễ dàng mà không cần viết mã, chỉ cần sử dụng SQL chuẩn.

Máy chủ web

IIS, sản phẩm do Microsoft phát triển, được tích hợp với hệ điều hành Windows Server Nó bao gồm nhiều dịch vụ quan trọng như dịch vụ Web Server và dịch vụ FTP Server.

Tất cả các tính năng của web server được quản lý độc lập, cho phép chúng ta dễ dàng thêm, loại bỏ hoặc thay thế các tính năng này.

IIS giúp bảo vệ máy chủ bằng cách giảm diện tích bề mặt tấn công, một phương pháp hiệu quả để đảm bảo an toàn cho hệ thống Bằng cách loại bỏ các tính năng không cần thiết, chúng ta có thể tối ưu hóa máy chủ, giữ lại những chức năng quan trọng và giảm thiểu bộ nhớ sử dụng Việc này không chỉ cải thiện hiệu suất mà còn giảm thiểu số lượng mã cần thực hiện Bằng cách lựa chọn các tính năng phù hợp, chúng ta có thể xây dựng một máy chủ tối ưu cho các chức năng như bộ nhớ đệm hoặc cân bằng tải.

Chúng ta có thể mở rộng hoặc thay thế các tính năng hiện có bằng cách sử dụng các thành phần máy chủ của bên thứ ba hoặc tự xây dựng trên phần mở rộng API Cấu trúc này mang lại lợi ích lâu dài cho cộng đồng IIS, tạo điều kiện cho việc phát triển các tính năng mới cần thiết cho cả nhà phát triển của Microsoft và bên thứ ba.

Cloud Server - Giải pháp đám mây giúp vận hành website ổn định, nhanh chóng

ASP.NET được tích hợp với IIS, cho phép khai thác toàn bộ sức mạnh của nó Module ASP.NET giúp máy chủ phát triển nhanh chóng nhờ vào giao diện thân thiện và các dịch vụ ứng dụng mạnh mẽ của ASP.NET.

IIS hỗ trợ chứng thực người dùng, virtual hosting, CGI, FCGI, ISAPI, php, hỗ trợ Ipv6,…

Nginx là một loại máy chủ web phổ biến hiện nay, hoạt động như một reverse proxy mã nguồn mở cho các giao thức HTTP, HTTPS, SMTP, POP3 và IMAP Ngoài ra, Nginx còn được sử dụng như một máy chủ cân bằng tải, HTTP cache và web.

Cloud Server - Giải pháp đám mây giúp vận hành website ổn định, nhanh

Dự án Nginx, được phát triển bởi Igor Sysoev vào năm 2002, tập trung vào tính đồng thời cao, hiệu năng vượt trội và sử dụng tài nguyên tối ưu Nginx lần đầu tiên được phát hành công khai vào năm 2004.

Apache HTTP Server, hay còn gọi là Apache, là phần mềm máy chủ web phổ biến nhất trên toàn cầu Được phát triển và duy trì bởi cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation, Apache được phát hành theo giấy phép Apache License, cho phép người dùng sử dụng miễn phí.

Apache có các tính năng như chứng thực người dùng, virtual hosting, hỗ trợ CGI, FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6,…

2.7.4 Apachi Tomcat là một Java Servlet được phát triển bởi Apache Software Foundation Tomcat thi hành các ứng dụng Java Servlet và JavaServer Pages (JSP) Tomcat cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy Apache Tomcat là một phần mềm mã nguồn mở để chạy các ứng dụng web có nền tảng là ngôn ngữ Java Tomcat được hỗ trợ và tăng cường bởi một nhóm tình nguyện viên từ cộng đồng mã nguồn mở của Java

Apache Tomcat là một ứng dụng web ổn định và đầy đủ tính năng, tương tự như các ứng dụng web thương mại, nhưng được phân phối dưới giấy phép mã nguồn mở của Apache Ngoài ra, Tomcat còn cung cấp các chức năng bổ sung như ứng dụng quản lý Tomcat, triển khai realm chuyên biệt và van Tomcat Các phiên bản của Apache Tomcat thường trùng với phiên bản và đặc điểm kỹ thuật của Servlet Java hoặc Java Servlet API, chẳng hạn như Tomcat 5.5X hỗ trợ Servlet API 2.3, Tomcat 6.0X hỗ trợ Servlet API 2.4 và Tomcat 7.0 hỗ trợ Servlet API 3.0 Đồng thời, mỗi phiên bản Tomcat cũng hỗ trợ phiên bản JSP API tương ứng.

Cloud Server - Giải pháp đám mây giúp vận hành website ổn định, nhanh chóng

Apache Tomcat có các tính năng như chứng thực người dùng, virtual hosting, CGI, Java Servlet, SSI, hỗ trợ Ipv6, …

Apache Tomcat hỗ trợ các hệ điều hành như windows, linux, OS, BSD, solaris,…

Một số công nghệ khác

HTML (HyperText Markup Language) là ngôn ngữ đánh dấu chính để tạo ra các trang web trên World Wide Web Cùng với CSS và JavaScript, HTML tạo thành bộ ba nền tảng cho web Được định nghĩa là một ứng dụng đơn giản của SGML, HTML phục vụ cho các tổ chức có yêu cầu xuất bản phức tạp HTML đã trở thành tiêu chuẩn Internet do W3C duy trì, với phiên bản mới nhất là HTML 4.01 (1999), sau đó được thay thế bởi XHTML Hiện tại, HTML5 đang được phát triển, hứa hẹn mang lại diện mạo mới cho web.

Bằng cách sử dụng HTML động hoặc Ajax, lập trình viên có thể tạo ra và xử lý nhiều công cụ khác nhau, từ chương trình soạn thảo văn bản đơn giản đến các công cụ xuất bản WYSIWYG phức tạp Hypertext kết nối các trang Web (tài liệu HTML) với nhau, và các đường link trên trang Web được gọi là Hypertext HTML, hay ngôn ngữ đánh dấu bằng thẻ, cho phép người dùng đánh dấu tài liệu văn bản bằng các thẻ để hướng dẫn trình duyệt Web cách cấu trúc và hiển thị nội dung trên màn hình.

HTML hoạt động thông qua việc sử dụng các thẻ, hay còn gọi là "element" Những thẻ này có tên gọi rất trực quan như thẻ header, thẻ paragraph, thẻ image, và nhiều thẻ khác.

CSS, viết tắt của Cascading Style Sheets, là ngôn ngữ dùng để tìm và định dạng các phần tử được tạo ra bởi các ngôn ngữ đánh dấu như HTML Trong khi HTML định hình các phần tử trên website như văn bản, tiêu đề và bảng, CSS mang đến phong cách cho các phần tử HTML, cho phép thay đổi màu sắc trang, màu chữ và cấu trúc.

 Cách hoạt động của CSS

CSS hoạt động bằng cách tìm kiếm các vùng chọn, bao gồm tên thẻ HTML, ID, class và nhiều kiểu khác Sau đó, nó áp dụng các thuộc tính cần thiết để thay đổi các vùng đã chọn.

 Cấu trúc của một đoạn CSS

Tên phần tử HTML bắt đầu của bộ quy tắc Nó chọn (các) phần tử được tạo kiểu

(trong trường hợp này là phần tử p) Để tạo kiểu cho một phần tử khác, chỉ cần thay đổi bộ chọn

Một quy tắc duy nhất như: color: red; xác định thuộc tính của phần tử nào bạn muốn tạo kiểu

Có nhiều cách để tạo kiểu cho phần tử HTML, chẳng hạn như thay đổi màu sắc của phần tử `

` Trong CSS, bạn cần chọn thuộc tính mà bạn muốn điều chỉnh trong quy tắc của mình.

Giá trị thuộc tính nằm bên phải dấu hai chấm (:) và đại diện cho một trong nhiều lựa chọn có thể cho một thuộc tính cụ thể, chẳng hạn như thuộc tính màu sắc (color) có nhiều giá trị khác nhau ngoài màu đỏ.

JavaScript, hiện tại là một ngôn ngữ lập trình thông dịch, được phát triển từ các ý niệm nguyên mẫu và được sử dụng rộng rãi cho cả trang web phía người dùng và phía máy chủ (Node.js) Được sáng tạo bởi Brendan Eich tại Hãng truyền thông Netscape, ngôn ngữ này ban đầu mang tên Mocha, sau đó đổi thành LiveScript và cuối cùng là JavaScript Mặc dù có cú pháp tương tự như Java, JavaScript lại gần gũi hơn với ngôn ngữ Self Phần mở rộng thường được sử dụng cho tập tin mã nguồn JavaScript là js.

Phiên bản mới nhất của JavaScript là ECMAScript 7 ECMAScript là phiên bản chuẩn hóa của JavaScript Trình duyệt Mozilla phiên bản 1.8 beta 1 có hỗ trợ không

Hình 2.5 Cấu trúc một đoạn CSS đầy đủ cho E4X - phần mở rộng cho JavaScript hỗ trợ làm việc với XML, được chuẩn hóa trong ECMA-357

 Cách hoạt động của Javacript

When a web browser loads a webpage, the HTML parser begins to analyze the HTML code and constructs the Document Object Model (DOM) Whenever the parser encounters a CSS or JavaScript directive, whether inline or externally loaded, it hands it off to the CSS parser or JavaScript engine as needed.

JavaScript engine tải các tệp JavaScript bên ngoài và mã inline, nhưng không thực thi ngay lập tức mà chờ cho HTML và CSS được phân tích xong Sau khi hoàn tất, JavaScript được thực thi theo thứ tự xuất hiện trên trang, bao gồm việc xác định các biến và hàm, thực thi các lời gọi hàm, và kích hoạt các trình xử lý sự kiện Những hoạt động này cập nhật DOM bằng JavaScript và hiển thị ngay lập tức trên trình duyệt.

Bootstrap là một khung CSS miễn phí và mã nguồn mở, được thiết kế để phát triển web đáp ứng và di động Nó bao gồm các mẫu CSS và (tùy chọn) JavaScript cho kiểu chữ, biểu mẫu, nút, điều hướng và các thành phần giao diện khác.

CHƯƠNG 3 XÂY DỰNG PHÁT TRIỂN PHẦM MỀM

Xây dựng công cụ tìm kiếm toàn văn bản trên Tạp chí Khoa học và Công nghệ

Trường Đại học Lâm nghiệp.

Lựa chọn công nghệ phát triển

3.1.1 Các tiêu chí lựa chọn

Sau quá trình nghiên cứu đánh giá hệ thống tôi đưa ra các yêu cầu về ngôn ngữ lập trình và công nghệ như sau:

- Ngôn ngữ lập trình mạnh, linh hoạt

- Framework hỗ trợ mạnh, an toàn bảo mật

- Có khả năng làm việc dễ dàng với nhiều cơ sở dữ liệu

- Hỗ trợ nhiều công nghệ mới và hỗ trợ mạnh công nghệ tìm kiếm

- Công nghệ tìm kiếm tốt và linh hoạt

- Đảm bảo hiệu suất, ổn định, dễ tích hợp và mở rộng

- Hoạt động ổn định, an toàn, miễn phí

- Phù hợp với công nghệ tìm kiếm nhanh

- Thiết kế giao diện trực quan

- Tương thích tốt với các trình duyệt web: Chrome, Firefox, Opera, …

- Hiển thị thích ứng trên mọi loại thiết bị

- Đảm bảo hiệu năng, miên phí, có thể triển khai đa nền tảng

- Có thể triển khai đc phần cứng hoặc cloud

- Có thể triển khai đc trên Windows/Linux

Dựa trên các yêu cầu trên tôi đã xác định lựa chọn các công nghệ sau đây:

 Ngôn ngữ lập trình: Python

 Khung phát triển: Django framework

 Phát triển giao diện: HTML5, CSS3, Bootstrap4, JS (JQuery, VueJS)

 Cơ sở dữ liệu: PostgreSQL, MongoDB

 Tiêu chuẩn dịch vụ: Restful API

 Máy chủ vận hành: Windows/Linux

Xây dựng kiến trúc hệ thống và mô hình triển khai

3.2.1 Mô hình kiến trúc hệ thống

Hệ thống được thiết kế theo kiến trúc đa tầng gồm có: tầng trình ứng dụng, tầng dịch vụ, tầng dữ liệu

 Tầng ứng dụng (application): bao gồm các ứng dụng Web application, Mobile application, Desktop application

Tầng dịch vụ sử dụng ngôn ngữ lập trình Python để phát triển ứng dụng lõi, tích hợp công nghệ Elasticsearch và xây dựng các giao diện lập trình ứng dụng API theo kiến trúc RESTful.

Tầng dữ liệu là nơi lưu trữ thông tin, được tổ chức và quản lý bởi các hệ quản trị cơ sở dữ liệu như PostgreSQL và MongoDB.

3.2.2 Mô hình triển khai phần mềm

Hình 3.2 Mô hình triển khai phần mềm

3.2.3 Mô hình triển khai vật lý

Hình 3.3 Mô hình triển khai vật lý

Thiết kế phần mềm

Bảng 3.1 danh sách tác nhân

STT Tác nhân Viết tắt Mô tả

1 Cộng đồng CD Người dùng cộng đồng (bất kỳ ai truy cập hệ thống)

2 Người dùng ND Người dùng (có thể đăng nhập và sử dụng chức năng thư viện của tôi)

Chuyên viên (Có thể sử dụng tất cả chức năng của người dùng và có thêm các chức năng quản dữ liệu)

3 Quản trị viên QTV Quản trị viên (là người có chức năng quản lý chuyên viên và quản lý hệ thống hệ thống)

Bảng 3.2 Danh sách các chức năng

STT Use case Mô tả

1 Tìm kiếm thông tin Tất cả người dùng đều có thể tìm kiếm các thông tin về các bài báo thông qua từ khóa

Người dùng cần đăng nhập bằng tài khoản và mật khẩu của mình để thực hiện các thao tác tương ứng với từng chức năng.

3 Thư viện của tôi Người dùng có thể lưu các bài báo quan tâm những bài báo được lưu sẽ xuất hiện trong thư viện của tôi

Quản lý bài viết nghiên cứu là một phần quan trọng trong hệ thống, cho phép chuyên viên quyền quản lý dữ liệu thực hiện các chức năng như thêm, sửa, xóa và tìm kiếm bài viết một cách hiệu quả.

5 Quản lý lĩnh vực Chuyên viên quyền quản lý các lĩnh vực trong hệ thống, bao gồm các chức năng thêm, sửa, xóa, tìm kiếm

6 Quản lý chuyên ngành Chuyên viên quyền quản lý các chuyên ngành trong hệ thống, bao gồm các chức

STT Use case Mô tả

7 Quản lý tác giả Chuyên viên quyền quản lý tác giả trong hệ thống, bao gồm các chức năng thêm, sửa, xóa, tìm kiếm

8 Quản lý cơ sở nghiên cứu Chuyên viên quyền quản lý các cơ sở nghiên cứu trong hệ thống, bao gồm các chức năng thêm, sửa, xóa, tìm kiếm

9 Cấu hình logo Quản trị viên quyền tùy chỉnh logo, tiêu đề và cỡ chữ của tiêu đề

Quản lý người dùng là một chức năng quan trọng của quản trị viên trong hệ thống, cho phép thực hiện các thao tác như thêm, sửa, xóa, tìm kiếm và phân quyền, phân vai trò cho người dùng.

3.3.3 Thiết kế cơ sở dữu liệu

3.3.3.1 Sơ đồ mô hình quan hệ CSDL

Hình 3.4 Sơ đồ mô hình quan hệ CSDL

Bảng 3.3 Thiết kế chi tiết - Bảng bài báo

Bài viết này trình bày cấu trúc dữ liệu của một bảng thông tin bài báo, bao gồm các trường như uuid (khóa chính), title (tiêu đề bài báo), number_publish (năm xuất bản), page_index (số trang), recived_date (ngày nhận bài), decided_date (ngày quyết định đăng bài), abstract (nội dung tóm tắt), keywords (từ khóa), citation (nội dung trích dẫn), url (link gốc), linhvuc (khóa ngoại tên lĩnh vực), chuyennganh (khóa ngoại chuyên ngành), creation_date (thời gian khởi tạo) và modification_date (thời gian chỉnh sửa gần nhất).

Bảng 3.4 Thiết kế chi tiết - bảng tác giả

Tên trường Kiểu dữ liệu Ràng buộc Mô tả uuid uuid Khóa chính Mã tác giả

Name varchar Tên tác giả creation_date timestamp Thời gian khởi tạo modification_date timestamp Thời gian chỉnh sửa gần nhất

Bảng 3.5 Thiết kế chi tiết - bảng lĩnh vực

Tên trường Kiểu dữ liệu Ràng buộc Mô tả uuid uuid Khóa chính Mã lĩnh vực

Name varchar Tên lĩnh vực creation_date timestamp Thời gian khởi tạo modification_date timestamp Thời gian chỉnh sửa gần nhất

Bảng 3.6 Thiết kế chi tiết - bảng chuyên ngành

Tên trường Kiểu dữ liệu Ràng buộc Mô tả uuid uuid Khóa chính Mã chuyên ngành

Name varchar Tên chuyên ngành creation_date timestamp Thời gian khởi tạo modification_date timestamp Thời gian chỉnh sửa gần nhất

 Bảng cơ sở nghiên cứu

Bảng 3.7 Thiết kế chi tiết - bảng cơ sở nghiên cứu

Tên trường Kiểu dữ liệu Ràng buộc Mô tả uuid uuid Khóa chính Mã cơ sở nghiên cứu

Name varchar Tên cơ sở nghiên cứu

Phone Varchar Số điện thoại

Short_name Varchar Tên viết tắt creation_date timestamp Thời gian khởi tạo modification_date timestamp Thời gian chỉnh sửa gần nhất

 Bảng liên kết bài báo và cơ sở nghiên cứu

Bảng 3.8 Thiết kế chi tiết - bảng liên kết bài báo và cơ sở nghiên cứu

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

Id Integer Khóa chính Mã liên kết

Article_id Uuid Khóa ngoại Bài báo

Affiliation_id Uuid Khóa ngoại Cơ sở nghiên cứu

 Bảng liên kết bài báo và tác giả

Bảng 3.9 Thiết kế chi tiết - bảng liên kết bài báo và tác giả

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

Id Integer Khóa chính Mã liên kết

Article_id Uuid Khóa ngoại Bài báo author_id Uuid Khóa ngoại Tác giả

Bảng 3.10 Thiết kế chi tiết - bảng người dùng

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

Id Integer Khóa chính Mã người dùng

Username Varchar Tên tài khoản

Password Varchar Mật khẩu (Đã được mã hóa)

Phone Varchar Số điện thoại

User_role Integer Phân quyền

 Bảng phân quyền người dùng

Bảng 3.11 Thiết kế chi tiết - bảng phân quyền người dùng

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

Id Integer Khóa chính Mã phân quyền

Slug Varchar Tên phân quyền

 Bảng thư viện người dùng

Bảng 3.12 Thiết kế chi tiết - bảng thư viện người dùng

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

Id Integer Khóa chính Mã thư viện

Article Uuid Khóa ngoại Bài báo

User Integer Khóa ngoại Người dùng creation_date timestamp Thời gian khởi tạo modification_date timestamp Thời gian chỉnh sửa gần nhất

Bảng 3.13 Thiết kế chi tiết - bảng cấu hình logo

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

Id Integer Khóa chính Mã thư viện

Photo Varchar Đường dẫn ảnh (logo)

Title Varchar Tiêu đề website

Font_size Integer Font chữ site bình thường

Font_home_size Integer Font chữ site home

3.3.4 Biểu đồ phân rã chức năng

 Biểu đồ usecase tổng quát

Hình 3.5 Biểu đồ usecase tổng quát

 Biểu đồ usecase đăng ký tài khoản

Hình 3.6 Biểu đồ usecase đăng ký tài khoản

Chức năng đăng ký tài khoản cho phép người dùng tham gia cộng đồng và sử dụng thư viện cá nhân để lưu trữ các bài viết mà họ quan tâm.

Bảng 3.14 Đặc tả usecase tìm kiếm thông tin

Tên Usecase: Đăng ký tài khoản

Tác nhân chính trong usecase này là CĐ, trong khi tác nhân phụ không được xác định Điều kiện để bắt đầu usecase là khi tác nhân truy cập vào hệ thống, và điều kiện để kết thúc usecase là khi người dùng đăng ký tài khoản thành công.

Trình tự các sự kiện trong quá trình hoạt động của Usecase:

1 Tác nhân truy cập hệ thống

2 Tác nhân chọn đăng nhập

3 Tác nhân chọn đăng ký

4 Tác nhân nhập thông tin đăng ký

5 Tác nhân nhấn nút đăng ký tài khoản

Hoàn cảnh sử dụng thành công cơ bản: Người dùng đăng ký tài khoản thành công

Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo báo lỗi

Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc (tùy chọn): Không có Các yêu cầu phi chức năng (tùy chọn): không có

Các biểu đồ mô tả có liên quan đến: Không có

 Biểu đồ usecase tìm kiếm thông tin

Hình 3.7 Biểu đồ usecase tìm kiếm thông tin

Chức năng tìm kiếm thông tin cho phép người dùng trong cộng đồng tìm kiếm các bài báo dựa trên từ khóa, tiêu đề, nội dung tóm tắt, tác giả và đồng tác giả của bài báo cần tìm.

Bảng 3.15 Đặc tả usecase tìm kiếm thông tin

Tên Usecase: Tìm kiếm thông tin

Tác nhân chính trong usecase là CĐ, với điều kiện bắt đầu là tác nhân truy cập hệ thống Usecase kết thúc khi hệ thống trả về kết quả tìm kiếm cho tác nhân.

6 Tác nhân truy cập hệ thống

7 Tác nhân nhập thông tin muốn tìm kiếm

8 Tác nhân chọn “Tìm kiếm”

Hoàn cảnh sử dụng thành công cơ bản: Hệ thống hiển thị kết quả tìm kiếm đúng với mong muốn của tác nhân

Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo không tìm thấy kết quả tìm kiếm hoặc báo lỗi

Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc (tùy chọn): Không có Các yêu cầu phi chức năng (tùy chọn): không có

Các biểu đồ mô tả có liên quan đến: Không có

 Biểu đồ usecase đăng nhập hệ thống

Hình 3.8 Biểu đồ usecase đăng nhập hệ thống

Chức năng đăng nhập cho phép người dùng truy cập vào hệ thống, từ đó họ có thể lưu bài viết yêu thích vào thư viện cá nhân Đối với quản trị viên và chuyên viên, chức năng này cũng hỗ trợ quản lý hệ thống và dữ liệu hiệu quả hơn.

Bảng 3.16 Đặc tả usecase đăng nhập

Tác nhân chính trong quy trình này là người dùng, trong khi tác nhân phụ không được xác định Điều kiện để bắt đầu use case là người dùng cần đăng ký tài khoản, và điều kiện để kết thúc use case là người dùng phải đăng nhập thành công vào hệ thống.

Trình tự các sự kiện trong quá trình hoạt động của Usecase:

1 Tác nhân truy cập hệ thống

2 Tác nhân chọn chức năng “Đăng nhập”

3 Tác nhân nhập tài khoản và mật khẩu

4 Tác nhân chọn “Đăng nhập”

Hoàn cảnh sử dụng thành công cơ bản: Tác nhân đăng nhập thành công vào hệ thống

Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi

Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc (tùy chọn):

Tác nhân có thể đổi mật khẩu

Các yêu cầu phi chức năng (tùy chọn): không có

Các biểu đồ mô tả có liên quan đến: Không có

 Biểu đồ usecase thư viện của tôi

Hình 3.9 Biểu đồ usecase thư viện của tôi

Chức năng thư viện của tôi cho phép người dùng lưu trữ các bài viết yêu thích vào thư viện cá nhân và dễ dàng xóa bỏ những bài viết không còn quan tâm.

Bảng 3.17 Đặc tả usecase thư viện của tôi

Tên Usecase: Thư viện của tôi

Tác nhân chính trong usecase này là người dùng (ND), với điều kiện bắt đầu là người dùng đăng nhập vào hệ thống Usecase sẽ kết thúc khi hệ thống trả về kết quả cho người dùng.

Trình tự các sự kiện trong quá trình hoạt động của Usecase:

1 Tác nhân đăng nhập hệ thống

2 Tác nhân chọn chức năng “Thư viện của tôi”

3 Tại chức năng này tác nhân có thể:

 Tìm kiếm trong thư viện của tôi

 Lọc bài viết trong thư viện theo năm xuất bản

 Xem chi tiết bài viết

 Bỏ lưu bài viết trong thư viện

Hoàn cảnh sử dụng thành công cơ bản: Hệ thống trả về kết quả đúng với mong muốn của tác nhân

Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi

Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc (tùy chọn): Không có Các yêu cầu phi chức năng (tùy chọn): không có

 Biểu đồ usecase quản lý bài viết nghiên cứu

Hình 3.10 Biểu đồ usecase quản lý bài viết nghiên cứu

Chức năng quản lý bài viết nghiên cứu cho phép quản trị viên quản lý, thêm, sửa và xóa các bài viết trong hệ thống khi cần thiết.

Bảng 3.18 Đặc tả usecase quản lý bài viết nghiên cứu

Tên Usecase: Quản lý bài viết nghiên cứu

Tác nhân chính trong usecase này là người dùng đăng nhập vào hệ thống, trong khi không có tác nhân phụ nào tham gia Điều kiện để bắt đầu usecase là khi tác nhân thực hiện việc đăng nhập, và điều kiện để kết thúc usecase là khi hệ thống trả về kết quả cho tác nhân.

Trình tự các sự kiện trong quá trình hoạt động của Usecase:

1 Tác nhân đăng nhập hệ thống

2 Tác nhân chọn chức năng “Quản lý hệ thống”

3 Tác nhân chọn “Bài viết nghiên cứu”

4 Tại chức năng này tác nhân có thể:

 Thêm, chỉnh sửa, xóa bài viết nghiên cứu

 Tìm kiếm bài viết nghiên cứu

Hoàn cảnh sử dụng thành công cơ bản: Hệ thống trả về kết quả đúng với mong muốn của tác nhân

Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi

Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc (tùy chọn): Không có Các yêu cầu phi chức năng (tùy chọn): không có

Các biểu đồ mô tả có liên quan đến: Không có

 Biểu đồ usecase quản lý thông tin lĩnh vực

Hình 3.11 Biểu đồ usecase Quản lý thông tin lĩnh vực

Chức năng quản lý thông tin lĩnh vực cho phép người quản trị viện quản lý các lĩnh vực nghiên cứu trong hệ thống, bao gồm việc thêm, sửa đổi thông tin khi có sai sót và xóa các lĩnh vực không cần thiết.

Bảng 3.19 Đặc tả usecase quản lý lĩnh vực

Tên Usecase: Quản lý lĩnh vực

Lập trình phần mềm

3.4.1 Các mô đun chức năng

3.4.1.1 Các chức năng của hệ thống bao gồm:

 Quản lý vài trò người dùng

 Quản lý nhật ký hệ thống

3.4.1.2 Mô đun chức năng quản lý bài báo khoa học

Các chức năng của hệ thống bao gồm:

 Quản lý bài viết nghiên cứu

 Quản lý thông tin lĩnh vực

 Quản lý thông tin chuyên ngành

 Quản lý thông tin tác giả

 Quản lý cơ sở nghiên cứu

3.4.2 Các đoạn mã, hàm xử lý chức năng

 Hàm cào dữ liệu def crawling_data(self, response):

The article discusses the extraction of various elements from a web response using CSS selectors Key components include affiliations, page index, abstract, keywords, a quote, and the title, all of which are retrieved through specific CSS queries Additionally, a PDF file link is extracted for further reference The title of the article is printed as part of the output.

# Cơ sở nghiên cứu của tác giả affiliations = [] for affiliation in affiliations_raw: affiliation = affiliation.replace("\n", '') affiliation = " ".join(affiliation.split()) if affiliation != None and affiliation != "": affiliations.append(affiliation)

# Ngày quyết định đăng bài date_decided = str(page_index_raw)) date_decided = " ".join(date_decided.split()) page_index_raw = page_index_raw

# Ngày nhận bài date_received = page_index_raw.split('Ngày nhận bài:')[1] date_received = " ".join(date_received.split()) page_index_raw = page_index_raw.split('Ngày nhận bài:')[0]

# Trang page_index = page_index_raw.split('Trang:')[1] number_y = " ".join(number_y.split())

# Keywords keywords = keywords_raw.replace("Từ khóa:", '') keywords = " ".join(keywords.split())

# Quote quote = quote_raw.replace("\n", '') quote = " ".join(quote.split())

# Title title_raw = title_raw title = " ".join(title_raw.split()) pdf = "http://journal.vnuf.edu.vn/o_c/js/dnld?o_url=" + pdf yield {

 Hàm thêm người dùng def add(request, username, role, password): actor = request.user content = ContentType.objects.get(model="usercustom") try:

The code checks if a username already exists in the UserCustom database If the username is found, it prints a message indicating that the username is already taken and returns a failure message If the username does not exist, it retrieves the user role from the UserRole database, creates a new user with the specified username and password, saves the user, and returns a success message.

The `edit` function allows for the modification of user information, including email, phone, photo, role, and account status It first retrieves the current user and the specific user to be edited If the email or phone number has changed, it updates these fields accordingly The function also updates the user's photo and role if they differ from the current values Additionally, it modifies the user's active status, staff status, and superuser status as needed Finally, the changes are saved to the database.

LogEntry.objects.log_action( user_idtor.id, content_type_id=content.id, object_id=user.id, object_repr= actor.username, change_message=change_message, action_flag=2

 Hàm xóa người dùng def delete(request, id): actor = request.user content = ContentType.objects.get(model="usercustom") try: user = UserCustom.objects.get(id=id) user.delete()

LogEntry.objects.log_action( user_idtor.id, content_type_id=content.id, object_id=id, object_repr= actor.username, change_message="ID: " + id, action_flag=3

) return {'message': "Success delete!", 'type': 1} except: return {'message': "Failed to delete user", 2}

3.4.3 Kết quả lập trình và giao diện phần mềm

 Giao diện dành cho người dùng công khai

Giao diện này cung cấp cho người dùng cách thức đơn giản để tương tác với chức năng công khai của hệ thống

 Bên trái giao diện là thanh điều hướng cho phép lựa chọn thư viện cá nhân;

 Trong giao diện hiển thị gồm có logo của hệ thống và 1 thanh tìm kiếm để người dùng có thể tìm thông tin các bài báo;

 Tại góc trên bên phải là đường dẫn đến chức năng đăng nhập hệ thống;

Hình 3.45 Giao diện dành cho người dùng công khai

Trên thiết bị di động, giao diện được tối giản hơn để phù hợp với kích thước nhỏ gọn của thiết bị di động

Hình 3.46 Giao diện trên thiết bị di động

Giao diện này cho phép người dùng quản lý các bài viết đã lưu, bao gồm việc xem danh sách, lọc bài viết, khám phá các bài viết liên quan và xóa bài viết khỏi danh sách lưu.

Hình 3.47 Giao diện thư viện của tôi

 Giao diện Quản lý hệ thống

Giao diện này giúp quản trị viên và chuyên viên dễ dàng quản lý thông tin hệ thống, bao gồm hiện trạng bài báo và nhật ký hệ thống một cách nhanh chóng.

Hình 3.48 Giao diện quản lý hệ thống

Tại giao diện này, người dùng có thể lựa chọn các chức năng quản lý dữ liệu như quản lý bài viết nghiên cứu, thông tin lĩnh vực, thông tin chuyên ngành, thông tin tác giả và thông tin cơ sở nghiên cứu để xem, thêm mới, cập nhật hoặc xóa dữ liệu Bên cạnh đó, quản trị viên cũng có khả năng cấu hình logo và quản lý người dùng.

 Một số giao diện quản lý

Hình 3.49 Giao diện quản lý bài viết nghiên cứu

Hình 3.50 Giao diện quản lý người dùng

Hình 3.51 Giao diện cấu hình logo

Ngày đăng: 19/07/2023, 13:23

HÌNH ẢNH LIÊN QUAN

Hình 2.2 Sơ đồ cách thức tổ chức dữ liệu Elasticsearch - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 2.2 Sơ đồ cách thức tổ chức dữ liệu Elasticsearch (Trang 23)
3.3.3.1. Sơ đồ mô hình quan hệ CSDL - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
3.3.3.1. Sơ đồ mô hình quan hệ CSDL (Trang 49)
Hình 3.11 Biểu đồ usecase Quản lý thông tin lĩnh vực - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 3.11 Biểu đồ usecase Quản lý thông tin lĩnh vực (Trang 59)
Hình 3.16 Biểu đồ usecase quản lý người dùng - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 3.16 Biểu đồ usecase quản lý người dùng (Trang 64)
Hình 3.17 Biểu đồ trình tự đăng ký tài khoản - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 3.17 Biểu đồ trình tự đăng ký tài khoản (Trang 65)
Hình 3.19 Biểu đô trình tự đăng nhâp - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 3.19 Biểu đô trình tự đăng nhâp (Trang 66)
Hình 3.27 Biểu đồ trình tự tìm kiếm lĩnh vực - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 3.27 Biểu đồ trình tự tìm kiếm lĩnh vực (Trang 70)
Hình 3.48 Giao diện quản lý hệ thống - Nghiên cứu máy tìm kiếm ứng dụng xây dựng thử nghiệm công cụ tìm kiếm toàn văn bản thông tin bài báo trên tạp chí khoa học và công nghệ trường đại học lâm nghiệp
Hình 3.48 Giao diện quản lý hệ thống (Trang 84)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w