Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh hội nhập và phát triển khoa học công nghệ, khối lượng các công trình nghiên cứu và bài báo khoa học được công bố ngày càng gia tăng. Việc tra cứu, chọn lọc và tiếp cận các tài liệu chuyên ngành đặt ra yêu cầu phải có những công cụ tìm kiếm chuyên dụng tương tự như các hệ thống học thuật trên thế giới (Google Scholar, Citeulike, RefSeek, iSeek).

Tại Trường Đại học Lâm nghiệp, Tạp chí Khoa học và Công nghệ là nơi công bố nhiều bài báo chuyên ngành. Tuy nhiên, các bài báo mới chỉ được sắp xếp thủ công theo năm và số xuất bản, chưa được tích hợp công cụ tìm kiếm chuyên biệt nhằm phục vụ nhu cầu tra cứu nhanh theo toàn văn, từ khóa hoặc tự động gợi ý. Để giải quyết bất cập này, đề tài "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" được thực hiện bởi sinh viên Bùi Văn Mạnh, chuyên ngành Hệ thống thông tin, dưới sự hướng dẫn của ThS. Trần Xuân Hòa.

Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể trong văn bản gồm:

  1. Mục tiêu chung: Nghiên cứu công nghệ máy tìm kiếm nhằm ứng dụng xây dựng thử nghiệm giải pháp 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 hiệu quả hơn theo từ khóa, tự động gợi ý và hoàn thành truy vấn.
  2. 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, 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 web hiện đại: RESTful API, xử lý đa luồng (Multi-threaded).
    • 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 khoa học.
    • Đánh giá, so sánh hiệu quả hoạt động của công cụ đã xây dựng.

Nội dung và nhiệm vụ nghiên cứu được phân định thành 4 phần việc:

  • 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.
  • Nội dung 2: Nghiên cứu lý thuyết và cơ chế hoạt động của máy tìm kiếm (Search Engine).
  • Nội dung 3: Nghiên cứu các công nghệ phát triển web gồm ngôn ngữ Python, Django Framework, RESTful API.
  • Nội dung 4: Phân tích thiết kế hệ thống và lập trình xây dựng công cụ tìm kiếm toàn văn bản.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Lý thuyết, cơ chế hoạt động của máy tìm kiếm và cấu trúc dữ liệu các 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.
  • Phạm vi không gian: Cơ sở dữ liệu bài báo khoa học thuộc Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp.
  • Phạm vi thời gian: Tập trung vào các bài báo khoa học được công bố trong giai đoạn từ năm 2019 đến năm 2021.
  • Nguồn dữ liệu: Các ấn phẩm và bài viết công bố chính thức trên Tạp chí Khoa học và Công nghệ của nhà trường.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp giữa nghiên cứu lý thuyết, phương pháp kế thừa tài liệu học thuật và phương pháp thực nghiệm phát triển phần mềm:

  • Nghiên cứu lý thuyết: Phân tích tài liệu về cấu trúc máy tìm kiếm, chuẩn cấu trúc dữ liệu quan hệ (SQL) và phi quan hệ (NoSQL), các mô hình kiến trúc phần mềm phân tầng và các máy chủ ứng dụng web.
  • Phương pháp kế thừa: Tiếp thu các nguyên lý lập chỉ mục và thuật toán tìm kiếm từ các công trình nghiên cứu về Lucene, Elasticsearch và Solr.
  • Phương pháp thực nghiệm: Tiến hành phân tích yêu cầu, thiết kế mô hình Use Case, xây dựng cơ sở dữ liệu quan hệ, lập trình triển khai mã nguồn và kiểm thử chức năng hệ thống trên môi trường máy chủ.

Về cơ sở lý thuyết, tác giả tập trung khảo cứu các thành phần nền tảng của hệ thống tìm kiếm:

  1. Kiến trúc Search Engine (SE): Bao gồm 3 khối chức năng độc lập về hoạt động nhưng liên kết chặt chẽ về dữ liệu:
    • Bộ thu thập thông tin (Robot/Spider/Crawler): Tự động duyệt qua các siêu liên kết (hyperlinks) để thu thập tài liệu web theo định kỳ.
    • Bộ lập chỉ mục (Index): Phân tích, tách từ khóa và trích chọn thông tin để tổ chức thành cấu trúc chỉ mục đảo (inverted index), phục vụ tra cứu nhanh.
    • Bộ tìm kiếm (Search Engine Core): Tiếp nhận truy vấn từ người dùng qua giao diện, đối chiếu cơ sở dữ liệu chỉ mục và trả về kết quả phù hợp theo thứ hạng.
  2. Công nghệ tìm kiếm Elasticsearch: Được xây dựng trên lõi Apache Lucene, xử lý văn bản phi cấu trúc qua chuẩn RESTful API, định dạng JSON. Cấu trúc tổ chức dữ liệu gồm: Document (đơn vị lưu trữ nhỏ nhất), Index (tương đương cơ sở dữ liệu), Shard (phân vùng dữ liệu gồm Primary Shard và Replica Shard) và Cluster (tập hợp các Node phân tán).

Bảng dưới đây tổng hợp tương quan ánh xạ giữa cơ sở dữ liệu quan hệ SQL và công cụ tìm kiếm Elasticsearch theo tài liệu khóa luận:

Thành phần SQL Thành phần Elasticsearch Diễn giải chức năng
Column Field Thuộc tính chứa dữ liệu; Field trong Elasticsearch có thể chứa nhiều giá trị cùng kiểu (mảng/danh sách).
Row Document Bản ghi dữ liệu; Row có cấu trúc ràng buộc chặt chẽ, Document linh hoạt dưới dạng JSON object.
Table Index Đối tượng tập hợp dữ liệu để thực thi truy vấn tìm kiếm.
Schema Implicit mapping Ranh giới logic và cấu trúc trường dữ liệu; Elasticsearch áp dụng định nghĩa kiểu tự động hoặc cấu hình bảo mật.
Database / Catalog Cluster Thực thể thời gian chạy chứa tập hợp các Index; Elasticsearch hỗ trợ vận hành phân tán nhiều node trên một cluster.

Thiết kế và triển khai hệ thống

Trên cơ sở đánh giá các ngôn ngữ (Python, C#, Java, PHP, C++) và hệ quản trị cơ sở dữ liệu (PostgreSQL, MySQL, SQL Server, Oracle, MongoDB), khóa luận đã xác định các tiêu chí lựa chọn công nghệ: ngôn ngữ linh hoạt, hỗ trợ bảo mật cao, tương thích tốt với các thư viện tìm kiếm, cơ sở dữ liệu ổn định và giao diện hiển thị đáp ứng (responsive).

Hệ thống được thiết kế theo kiến trúc 3 tầng (3-tier architecture):

  • Tầng ứng dụng (Application Layer): Giao diện tương tác người dùng đa nền tảng (Web application, Mobile application, Desktop application) được xây dựng bằng HTML5, CSS3, Bootstrap 4, JavaScript (JQuery, VueJS).
  • Tầng dịch vụ (Service Layer): Xây dựng bằng ngôn ngữ Python trên nền tảng Django Framework, tích hợp máy tìm kiếm Elasticsearch và cung cấp các điểm cuối RESTful API cho toàn bộ các thao tác CRUD (Create, Read, Update, Delete).
  • Tầng dữ liệu (Data Layer): Lưu trữ dữ liệu cấu trúc và tệp dữ liệu thông qua hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL kết hợp cơ sở dữ liệu MongoDB. Máy chủ web sử dụng Nginx triển khai trên hệ điều hành Windows/Linux.

Hệ thống phân định 4 nhóm tác nhân tham gia tương tác:

STT Tác nhân Viết tắt Phạm vi quyền hạn và mô tả chức năng
1 Người dùng cộng đồng CD Khách truy cập tự do, có quyền tra cứu và tìm kiếm thông tin bài báo qua từ khóa.
2 Người dùng ND Tài khoản đã đăng ký và đăng nhập, có quyền sử dụng chức năng lưu bài viết vào "Thư viện của tôi".
3 Chuyên viên CV Kế thừa toàn bộ quyền của người dùng; quản lý dữ liệu nghiệp vụ (thêm, sửa, xóa, tìm kiếm bài báo, tác giả, lĩnh vực, chuyên ngành, cơ sở nghiên cứu).
4 Quản trị viên QTV Quyền hạn cao nhất trong hệ thống; quản lý chuyên viên, quản lý tài khoản người dùng, phân quyền vai trò và cấu hình tham số giao diện (logo, tiêu đề).

Danh mục chức năng chính của hệ thống bao gồm:

  1. Tìm kiếm thông tin: Tra cứu toàn văn bài báo, tự động gợi ý từ khóa (autocomplete), lọc theo danh mục.
  2. Đăng ký / Đăng nhập: Xác thực tài khoản người dùng qua cơ chế bảo mật.
  3. Thư viện của tôi: Lưu trữ, đánh dấu các bài báo khoa học quan tâm của từng cá nhân.
  4. Quản lý bài viết nghiên cứu: Quản lý thông tin chi tiết bài báo (tiêu đề, năm xuất bản, trang, tóm tắt, từ khóa, trích dẫn, liên kết tệp).
  5. Quản lý danh mục hỗ trợ: Quản lý lĩnh vực nghiên cứu, chuyên ngành, danh sách tác giả, cơ sở nghiên cứu.
  6. Quản trị hệ thống: Cấu hình logo, tùy chỉnh tiêu đề trang, phân quyền tài khoản người dùng.

Cấu trúc cơ sở dữ liệu quan hệ được thiết kế chi tiết với các bảng chính:

Bảng dữ liệu Tên trường chính Kiểu dữ liệu Ràng buộc Mô tả nội dung
Bài báo uuid
title
number_publish
page_index
recived_date
decided_date
abstract
keywords
citation
url
linhvuc
chuyennganh
uuid
varchar
varchar
varchar
date
date
varchar
varchar
varchar
varchar
uuid
uuid
Khóa chính
-
-
-
-
-
-
-
-
-
Khóa ngoại
Khóa ngoại
Mã định danh bài báo
Tiêu đề bài báo
Số và năm xuất bản (vd: 1 – 2021)
Số trang bài báo (vd: 145 – 153)
Ngày nhận bài viết
Ngày duyệt đăng
Tóm tắt bài báo
Từ khóa tra cứu
Định dạng trích dẫn
Đường dẫn tệp toàn văn
Mã liên kết lĩnh vực
Mã liên kết chuyên ngành
Tác giả uuid
Name
creation_date
modification_date
uuid
varchar
timestamp
timestamp
Khóa chính
-
-
-
Mã tác giả
Họ và tên tác giả
Thời điểm tạo bản ghi
Thời điểm cập nhật
Lĩnh vực uuid
Name
creation_date
modification_date
uuid
varchar
timestamp
timestamp
Khóa chính
-
-
-
Mã lĩnh vực
Tên lĩnh vực nghiên cứu
Thời điểm tạo
Thời điểm cập nhật

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài nghiên cứu

Chương này khảo cứu lịch sử phát triển và tình hình ứng dụng máy tìm kiếm trên thế giới và tại Việt Nam. Văn bản phân tích các công cụ tìm kiếm dữ liệu học thuật quốc tế tiêu biểu như Google Scholar, Citeulike, RefSeek, iSeek và công cụ Cốc Cốc tại thị trường Việt Nam. Đồng thời, chương 1 xác lập cơ sở thực tiễn của đề tài tại Trường Đại học Lâm nghiệp, công bố 5 mục tiêu cụ thể, 4 nội dung nghiên cứu, đối tượng nghiên cứu (máy tìm kiếm và dữ liệu tạp chí) cùng phạm vi dữ liệu bài báo từ năm 2019 đến năm 2021.

Chương 2: Nghiên cứu cơ sở lý thuyết

Chương 2 cung cấp bức tranh toàn diện về các nền tảng kỹ thuật phục vụ phát triển hệ thống tìm kiếm:

  • Nguyên lý máy tìm kiếm: Cấu tạo và hoạt động của Robot thu thập dữ liệu, hệ thống đánh chỉ mục Inverted Index và bộ máy xử lý truy vấn Search Engine.
  • Công nghệ tìm kiếm: Khảo cứu chi tiết Elasticsearch, Apache Solr và lõi Lucene; phân tích các cơ chế Node, Cluster, Shard (Primary Shard, Replica Shard) và Document.
  • So sánh ngôn ngữ và khung phát triển: Đánh giá ưu nhược điểm của các ngôn ngữ lập trình (Python, C#, Java, PHP, C++) và các web framework (Django, Flask, Entity Framework Core, ABP Framework).
  • Chuẩn giao tiếp và cơ sở dữ liệu: Phân tích tiêu chuẩn RESTful API với các phương thức CRUD qua giao thức HTTP (GET, POST, PUT, DELETE) cùng các mã trạng thái phản hồi (200, 201, 204, 400, 401, 403, 404...); so sánh các hệ quản trị CSDL PostgreSQL, MySQL, SQL Server, Oracle, MongoDB; khảo cứu các máy chủ web IIS, Nginx, Apache HTTP, Apache Tomcat cùng các công nghệ giao diện HTML5, CSS3, JavaScript và Bootstrap.

Chương 3: Xây dựng phát triển phần mềm

Chương 3 trình bày toàn bộ quy trình phân tích, thiết kế và hiện thực hóa phần mềm tìm kiếm:

  • Lựa chọn công nghệ: Xác lập các tiêu chí kỹ thuật và quyết định bộ công cụ (Python, Django, Elasticsearch, PostgreSQL, MongoDB, RESTful API, Nginx, Bootstrap 4, VueJS/JQuery).
  • Kiến trúc và mô hình triển khai: Xây dựng mô hình kiến trúc 3 tầng (Application, Service, Data), mô hình triển khai phần mềm logic và mô hình triển khai hạ tầng vật lý.
  • Mô hình hóa hệ thống: Xây dựng danh mục tác nhân (CD, ND, CV, QTV), 10 ca sử dụng chính (Use Case), sơ đồ quan hệ thực thể cơ sở dữ liệu (ERD) với 11 bảng chi tiết (bài báo, tác giả, lĩnh vực, chuyên ngành, cơ sở nghiên cứu, bảng liên kết, người dùng, phân quyền, cấu hình logo, thư viện).
  • Biểu đồ tương tác và giao diện: Xây dựng hệ thống biểu đồ trình tự (Sequence Diagrams) cho từng chức năng thêm, sửa, xóa, tìm kiếm; hiện thực hóa giao diện tra cứu công khai, giao diện di động, trang thư viện cá nhân và bảng điều khiển quản trị hệ thống.

Chương 4: Kết luận – Tồn tại – Kiến nghị

Chương cuối cùng tổng kết các kết quả đạt được sau quá trình nghiên cứu và cài đặt thử nghiệm; chỉ ra các điểm tồn tại về mặt dữ liệu và hiệu năng phân tích; đề xuất các giải pháp nâng cấp, mở rộng hệ thống trong tương lai.


Kết quả và đóng góp

Khóa luận đã hoàn thành các mục tiêu đề ra với những kết quả cụ thể được ghi nhận:

  1. Kết quả kỹ thuật và sản phẩm phần mềm:

    • Hoàn thành khảo sát và xây dựng cơ sở dữ liệu chuẩn hóa cho các bài báo khoa học công bố trên Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp trong giai đoạn 2019 – 2021.
    • Thiết kế và cài đặt thành công mô hình kiến trúc 3 tầng, kết nối đồng bộ giữa Django Framework, PostgreSQL và công cụ tìm kiếm Elasticsearch thông qua RESTful API.
    • Xây dựng giao diện web đa thiết bị (Responsive Design trên Desktop và Mobile) cho phép tìm kiếm toàn văn bản theo từ khóa, gợi ý tự động (autocomplete) và cung cấp tính năng "Thư viện của tôi" cho người dùng đã xác thực.
    • Hoàn thiện hệ thống quản trị nội dung phân quyền cho phép chuyên viên và quản trị viên cập nhật thông tin bài báo, quản lý danh mục tác giả, lĩnh vực, chuyên ngành và cấu hình giao diện.
  2. Đóng góp của đề tài:

    • Hệ thống hóa cơ sở lý thuyết về nguyên lý lập chỉ mục và tìm kiếm thông tin bằng Elasticsearch trong việc xử lý tài liệu học thuật tiếng Việt.
    • Cung cấp một giải pháp công nghệ thử nghiệm có khả năng ứng dụng thực tế tại Trường Đại học Lâm nghiệp, thay thế phương thức tra cứu danh mục thủ công bằng công cụ tìm kiếm toàn văn bản tự động.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận ghi nhận các giới hạn trong phạm vi nghiên cứu và đề xuất định hướng phát triển:

  • Hạn chế:
    • Phạm vi dữ liệu thử nghiệm mới dừng lại ở tập dữ liệu bài báo công bố từ năm 2019 đến năm 2021 của Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp.
    • Hệ thống mới được triển khai và kiểm thử ở quy mô thử nghiệm nội bộ, chưa tích hợp sâu vào hệ thống xuất bản trực tuyến tự động của toàn trường.
  • Hướng nghiên cứu tiếp:
    • Mở rộng phạm vi thu thập dữ liệu cho toàn bộ các số tạp chí đã xuất bản từ trước năm 2019 và cập nhật liên tục các số mới xuất bản.
    • Tối ưu hóa thuật toán xử lý ngôn ngữ tự nhiên tiếng Việt trong quá trình bóc tách từ khóa (tokenization) và nâng cao độ chính xác của cơ chế gợi ý tìm kiếm mờ (fuzzy search).
    • Nghiên cứu tích hợp các giải pháp xử lý đa luồng nâng cao và tối ưu hóa bộ nhớ đệm (caching) để đáp ứng lượng truy cập đồng thời lớn.

Giá trị tham khảo

Bản khóa luận có giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Hệ thống thông tin và Công nghệ thông tin: Là tài liệu tham khảo chi tiết về quy trình phân tích thiết kế hệ thống thông tin, cách mô hình hóa Use Case, thiết kế cơ sở dữ liệu quan hệ và kỹ thuật tích hợp Elasticsearch với Django Framework qua RESTful API.
  • Cán bộ quản trị thư viện và xuất bản tạp chí: Cung cấp mô hình tham chiếu về cấu trúc quản lý dữ liệu bài báo khoa học (tác giả, chuyên ngành, lĩnh vực, số xuất bản, tóm tắt, trích dẫn) phục vụ số hóa tài liệu học thuật.
  • Người nghiên cứu phát triển web: Cung cấp tài liệu tổng quan và bảng so sánh chi tiết giữa các công nghệ cơ sở dữ liệu (PostgreSQL, MongoDB, SQL Server), ngôn ngữ lập trình và các máy chủ web (Nginx, Apache, IIS).

Câu hỏi thường gặp

1. Phạm vi dữ liệu bài báo được sử dụng để xây dựng công cụ tìm kiếm trong đề tài là gì?

Phạm vi dữ liệu của đề tài là các bài báo khoa học được xuất bản chính thức trên Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp trong khoảng thời gian từ năm 2019 đến năm 2021.

2. Hệ thống sử dụng những công nghệ và khung phát triển phần mềm chính nào?

Hệ thống sử dụng ngôn ngữ lập trình Python kết hợp Django Framework cho tầng dịch vụ; Elasticsearch đóng vai trò công cụ máy tìm kiếm toàn văn; PostgreSQL và MongoDB làm hệ quản trị cơ sở dữ liệu; giao diện được xây dựng bằng HTML5, CSS3, JavaScript (JQuery, VueJS), Bootstrap 4; hệ thống giao tiếp qua chuẩn RESTful API và vận hành trên máy chủ web Nginx.

3. Hệ thống phân chia những nhóm tác nhân người dùng nào và quyền hạn ra sao?

Hệ thống thiết kế 4 nhóm tác nhân:

  • Người dùng cộng đồng (CD): Tìm kiếm bài báo tự do theo từ khóa.
  • Người dùng (ND): Đăng nhập và lưu trữ bài viết vào "Thư viện của tôi".
  • Chuyên viên (CV): Toàn quyền quản lý dữ liệu bài viết, tác giả, lĩnh vực, chuyên ngành, cơ sở nghiên cứu.
  • Quản trị viên (QTV): Quản lý người dùng, phân quyền hệ thống và cấu hình logo, tiêu đề trang web.

4. Elasticsearch tổ chức dữ liệu như thế nào và tương ứng ra sao với cơ sở dữ liệu quan hệ SQL?

Elasticsearch tổ chức dữ liệu dưới dạng JSON Document trong các Index, phân bổ trên các Shard (Primary và Replica) thuộc các Node trong một Cluster. Về mặt tương quan: Field tương ứng với Column, Document tương ứng với Row, Index tương ứng với Table, Implicit Mapping tương ứng với Schema, và Cluster tương ứng với Catalog/Database trong SQL.


Kết luận

Khóa luận tốt nghiệp của sinh viên Bùi Văn Mạnh đã hoàn thành nghiên cứu cơ sở lý thuyết về máy tìm kiếm và ứng dụng thành công công nghệ Elasticsearch kết hợp Django Framework để xây dựng thử nghiệm công cụ tìm kiếm toàn văn bài báo khoa học cho Tạp chí Khoa học và Công nghệ Trường Đại học Lâm nghiệp. Đề tài đã giải quyết được nhu cầu tra cứu thông tin học thuật theo từ khóa và gợi ý tự động trên tập dữ liệu bài báo giai đoạn 2019 – 2021 thông qua kiến trúc 3 tầng chuẩn hóa. Công trình cung cấp tài liệu kỹ thuật có giá trị thực tiễn cao cho công tác số hóa và quản trị dữ liệu tạp chí khoa học chuyên ngành.