Giới thiệu về ElasticSearch
ElasticSearch (viết tắt là ES) là một công cụ tìm kiếm và phân tích dữ liệu hiệu suất cao, được thiết kế để xử lý lượng lớn dữ liệu văn bản một cách phân tán. Nó là một công cụ tìm kiếm doanh nghiệp phổ biến nhất hiện nay, cho phép tìm kiếm gần thời gian thực và được xây dựng trên nền tảng Java.
Lợi ích của ElasticSearch
- Cấu trúc phân tán: Khả năng mở rộng và chịu lỗi cao.
- Tìm kiếm toàn văn bản mạnh mẽ: Hiệu suất tìm kiếm vượt trội.
- Hỗ trợ đa ngôn ngữ: Phù hợp với nhiều ngôn ngữ lập trình và dữ liệu.
- Tính hiệu năng: Tốc độ xử lý nhanh.
- Tính thời gian thực: Dữ liệu được index và có thể tìm kiếm ngay lập tức.
- Tính dễ sử dụng: Giao diện API đơn giản và trực quan.
Ứng dụng của ElasticSearch
- Tìm kiếm toàn văn bản: Các hệ thống tìm kiếm như Google, Baidu, và các trang thương mại điện tử như JD.com.
- Phân tích日志:
- Quyết định kinh doanh thông minh: Các hệ thống phân tích dữ liệu cho các nền tảng thương mại điện tử như JD.com và Taobao.
Hướng dẫn Cài đặt ElasticSearch (Windows)
Yêu cầu hệ thống
ElasticSearch được phát triển bằng Java, do đó cần cài đặt JDK trước:
- ElasticSearch 7.x yêu cầu Java 11 hoặc cao hơn.
- ElasticSearch 8.x yêu cầu Java 17 hoặc cao hơn.
Tải xuống và giải nén
Tải gói cài đặt tương ứng từ trang web chính thức: Download Elasticsearch | Elastic
Cấu hình biến môi trường
- ES_HOME: Biến môi trường này cần được thiết lập để trỏ đến thư mục cài đặt Elasticsearch.
- ES_JAVA_HOME: Biến môi trường này dùng để chỉ định đường dẫn đến môi trường Java Runtime Environment (JRE) mà ElasticSearch sẽ sử dụng. (Từ phiên bản 7.x trở lên đã bao gồm JDK).
Chỉnh sửa tệp cấu hình ES
- Tắt tính năng bảo mật (khuyến nghị cho người mới bắt đầu): Mở tệp
config\elasticsearch.ymlvà thêm dòng sau:security.enabled: false - Giải quyết vấn đề mã hóa ký tự trong log: Mở tệp
config\jvm.optionsvà thêm vào cuối:-Dfile.encoding=UTF-8
Khởi động Elasticsearch
Chạy tệp bin\elasticsearch.bat để khởi động dịch vụ ES. Để kiểm tra cài đặt thành công, mở trình duyệt và truy cập http://localhost:9200.
Quản lý dữ liệu cơ bản trong Elasticsearch
Nắm vững các khái niệm cốt lõi
Tìm hiểu về kiến thức nền tảng của công cụ tìm kiếm
- Tìm kiếm toàn văn bản (Full-Text Search): Là một kỹ thuật để truy xuất nhanh chóng thông tin chứa từ khóa hoặc cụm từ chỉ định từ một lượng lớn dữ liệu văn bản.
- Chỉ mục đảo (Inverted Index): Là một cấu trúc dữ liệu ánh xạ các từ khóa đến các tài liệu chứa chúng. (Tìm tài liệu thông qua từ khóa).
- Quá trình xây dựng Chỉ mục đảo:
- Xử lý trước tài liệu.
- Xây dựng từ điển.
- Tạo danh sách đảo.
- Lưu trữ tệp index.
- Xử lý truy vấn.
Nắm vững các thuật ngữ phổ biến trong ES
- Chỉ mục (Index): Tương tự như một bảng trong MySQL.
- Bản đồ (Mapping): Tương tự như cấu trúc Schema của bảng trong MySQL.
- Tài liệu (Document): Tương tự như một dòng ghi trong bảng MySQL.
Chi tiết về các thao tác với Chỉ mục
Các kịch bản thực tế
- Lưu trữ dữ liệu của các loại nghiệp vụ khác nhau vào các chỉ mục riêng biệt:
- Chỉ mục cho nghiệp vụ Twitter:
twitter_index - Chỉ mục cho nghiệp vụ tin tức:
tin_tuc_index - Chỉ mục cho nghiệp vụ blog:
blog_index
- Chỉ mục cho nghiệp vụ Twitter:
- Phân chia lưu trữ chỉ mục log theo ngày:
- Log tháng 7 năm 2024:
log_202407 - Log tháng 8 năm 2024:
log_202408
- Log tháng 7 năm 2024:
Các thao tác cơ bản
(Sử dụng công cụ Kibana đồ họa, chi tiết có thể tham khảo)
- Tạo chỉ mục:
POST /twitter_index { "settings": { // Cài đặt chỉ mục }, "mappings": { "properties": { // Ánh xạ trường } } } - Xóa chỉ mục:
DELETE /twitter_index - Truy vấn chỉ mục:
GET /twitter_index - Chỉnh sửa chỉ mục:
PUT /twitter_index/_settings PUT /twitter_index/_mapping