chỉ mục

Đây là các mô-đun được tạo cho mọi chỉ mục và kiểm soát cài đặt và hành vi của các chỉ số. Ví dụ: có bao nhiêu phân đoạn mà một chỉ mục có thể sử dụng hoặc số lượng bản sao mà một phân đoạn chính có thể có cho chỉ mục đó, v.v. Có hai loại cài đặt chỉ mục –

  • Tĩnh – Chúng chỉ có thể được đặt tại thời điểm tạo chỉ mục hoặc trên một chỉ mục đã đóng.
  • Động – Chúng có thể được thay đổi trên chỉ mục trực tiếp.

Cài đặt chỉ mục tĩnh

Bảng sau đây cho thấy danh sách các cài đặt chỉ mục tĩnh:

Cài đặtGiá trị có thểSự miêu tả
index.number_of_shardsMặc định là 5, tối đa 1024Số lượng phân đoạn chính mà một chỉ mục phải có.
index.shard.check_on_startupGiá trị mặc định là false. Có thể đúngNên kiểm tra xem các mảnh vỡ có bị hỏng hay không trước khi mở.
index.codecNén LZ4.Loại nén được sử dụng để lưu trữ dữ liệu.
index.routing_partition_size1Số lượng phân đoạn mà một giá trị định tuyến tùy chỉnh có thể chuyển đến.
index.load_fixed_bitset_filters_eagerlysaiCho biết liệu các bộ lọc được lưu trong bộ nhớ đệm có được tải trước cho các truy vấn lồng nhau hay không

Cài đặt chỉ mục động

Bảng sau đây hiển thị danh sách các cài đặt chỉ mục động:

Cài đặtGiá trị có thểSự miêu tả
index.number_of_replicasMặc định là 1Số lượng bản sao mà mỗi phân đoạn chính có.
index.auto_expand_replicasDấu gạch ngang phân tách giới hạn dưới và trên (0-5)Tự động mở rộng số lượng bản sao dựa trên số lượng nút dữ liệu trong cụm.
index.search.idle. after30 giâyThời gian một phân đoạn không thể nhận được tìm kiếm hoặc nhận được yêu cầu cho đến khi nó được coi là tìm kiếm không hoạt động.
index.refresh_interval1 giâyTần suất thực hiện thao tác làm mới, thao tác này làm cho các thay đổi gần đây đối với chỉ mục hiển thị cho tìm kiếm.

Elasticsearch – IngestNode

Đôi khi chúng ta cần chuyển đổi một tài liệu trước khi lập chỉ mục cho nó. Ví dụ: chúng tôi muốn xóa một trường khỏi tài liệu hoặc đổi tên một trường và sau đó lập chỉ mục nó. Điều này được xử lý bởi nút Ingest.

Mọi nút trong cụm đều có khả năng nhập nhưng nó cũng có thể được tùy chỉnh để chỉ được xử lý bởi các nút cụ thể.

Các bước liên quan

Có hai bước liên quan đến hoạt động của nút nhập:

  • Tạo đường dẫn
  • Tạo tài liệu

Tạo một đường ống

Đầu tiên, tạo một đường dẫn có chứa các bộ xử lý và sau đó thực hiện đường dẫn, như được hiển thị bên dưới:

PUT _ingest/pipeline/int-converter
{
   "description": "converts the content of the seq field to an integer",
   "processors" : [
      {
         "convert" : {
            "field" : "seq",
            "type": "integer"
         }
      }
   ]
}

Khi chạy đoạn mã trên, chúng tôi nhận được kết quả sau:

{
   "acknowledged" : true
}

Tạo tài liệu

Tiếp theo, chúng tôi tạo một tài liệu bằng cách sử dụng bộ chuyển đổi đường ống.

PUT /logs/_doc/1?pipeline=int-converter
{
   "seq":"21",
   "name":"Tutorialspoint",
   "Addrs":"Hyderabad"
}

Khi chạy đoạn mã trên, chúng tôi nhận được phản hồi như hình dưới đây:

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "result" : "created",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 0,
   "_primary_term" : 1
}

Tiếp theo, chúng tôi tìm kiếm tài liệu đã tạo ở trên bằng cách sử dụng lệnh GET như hình dưới đây:

GET /logs/_doc/1

Khi chạy đoạn mã trên, chúng tôi nhận được kết quả sau:

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "_seq_no" : 0,
   "_primary_term" : 1,
   "found" : true,
   "_source" : {
      "Addrs" : "Hyderabad",
      "name" : "Tutorialspoint",
      "seq" : 21
   }
}

Bạn có thể thấy ở trên rằng 21 đã trở thành một số nguyên.

Không có đường ống

Bây giờ chúng ta tạo một tài liệu mà không cần sử dụng đường dẫn.

PUT /logs/_doc/2
{
   "seq":"11",
   "name":"Tutorix",
   "Addrs":"Secunderabad"
}
GET /logs/_doc/2

Khi chạy đoạn mã trên, chúng tôi nhận được kết quả sau:

{
   "_index" : "logs",
   "_type" : "_doc",
   "_id" : "2",
   "_version" : 1,
   "_seq_no" : 1,
   "_primary_term" : 1,
   "found" : true,
   "_source" : {
      "seq" : "11",
      "name" : "Tutorix",
      "Addrs" : "Secunderabad"
   }
}

Bạn có thể thấy ở trên rằng 11 là một chuỗi không có đường ống được sử dụng.

Elasticsearch – Quản lý Vòng đời Chỉ mục

Quản lý vòng đời chỉ mục liên quan đến việc thực hiện các hành động quản lý dựa trên các yếu tố như kích thước phân đoạn và các yêu cầu về hiệu suất. Các API quản lý vòng đời chỉ mục (ILM) cho phép bạn tự động hóa cách bạn muốn quản lý các chỉ số của mình theo thời gian. Chương này cung cấp danh sách các API ILM và cách sử dụng chúng.

API quản lý chính sách

Tên APIMục đíchThí dụ
Chuyển sang API bước vòng đời.Di chuyển thủ công một chỉ mục vào bước đã chỉ định và thực hiện bước đó.POST_ilm / move / index
Thử lại chính sách.Đặt chính sách trở lại bước xảy ra lỗi và thực hiện bước đó.POST index / _ilm / retry
Xóa chính sách khỏi chỉnh sửa API chỉ mục.Loại bỏ chính sách vòng đời được chỉ định và ngừng quản lý chỉ mục được chỉ định. Nếu một mẫu chỉ mục được chỉ định, hãy xóa các chính sách đã chỉ định khỏi tất cả các chỉ số phù hợp.POST index / _ilm / remove

API quản lý hoạt động

Tên APIMục đíchThí dụ
Nhận API trạng thái quản lý vòng đời chỉ mục.Trả về trạng thái của plugin ILM. Trường chế độ hoạt động trong phản hồi hiển thị một trong ba trạng thái: BẮT ĐẦU, DỪNG hoặc DỪNG.GET / _ilm / trạng thái
Bắt đầu API quản lý vòng đời của chỉ mục.Khởi động plugin ILM nếu nó hiện đang bị dừng. ILM được khởi động tự động khi cụm được hình thành.POST / _ilm / start
Dừng API quản lý vòng đời của chỉ mục.Tạm dừng tất cả các hoạt động quản lý vòng đời và dừng plugin ILM. Điều này hữu ích khi bạn đang thực hiện bảo trì trên cụm và cần ngăn ILM thực hiện bất kỳ hành động nào trên các chỉ số của bạn.ĐĂNG / _ilm / dừng
Giải thích về vòng đời API.Truy xuất thông tin về trạng thái vòng đời hiện tại của chỉ mục, chẳng hạn như giai đoạn, hành động và bước hiện đang thực thi. Hiển thị khi chỉ mục được nhập vào từng chỉ mục, định nghĩa của giai đoạn đang chạy và thông tin về bất kỳ lỗi nào.GET chỉ mục / _ilm / giải thích

Elasticsearch –  Truy cập SQL (xem thêm)

Trả lời