Понимание Index и Mapping в Elasticsearch

Конечно! Вот перевод объяснения и примеры для Index и Mapping в Elasticsearch:

Index в Elasticsearch

In похож на базу данных в традиционных системах управления базами данных(СУБД) Index. Elasticsearch Он хранит коллекцию связанных документов. Каждый из них Index обычно соответствует определенному типу данных в вашем приложении. Например, в приложении электронной коммерции вы можете создать один Index для хранения информации о продуктах, а другой Index — для хранения информации о пользователях и заказах.

Каждый Index из них Elasticsearch разделен на более мелкие сегменты для распределения данных. Shard — это небольшая часть Index, и каждый Shard может храниться на отдельном узле внутри Elasticsearch кластера. Разделение данных на сегменты оптимизирует производительность поиска и запросов и повышает масштабируемость системы.

Например, чтобы создать новое Index имя products  в Elasticsearch, вы можете использовать API или инструменты управления, такие как Kibana, для выполнения следующей команды:

PUT /products  
{  
  "settings": {  
    "number_of_shards": 3,  
    "number_of_replicas": 2  
  }  
}  

В приведенном выше примере мы создали Index products по 3 shard и по 2 replica каждого из них shard, чтобы обеспечить доступность и резервное копирование данных.

 

Mapping в Elasticsearch

Mapping — это процесс определения того, как Elasticsearch хранятся и обрабатываются данные в файле Index. Когда вы добавляете новый документ в Index, Elasticsearch используется Mapping для определения типа данных каждого поля в документе. Это помогает Elasticsearch понять, как обрабатывать и искать данные в разных областях.

Например, если у нас есть Index products и мы хотим определить Mapping для полей name(название продукта) и price  (цена продукта) текстовый и плавающий типы соответственно, мы можем выполнить следующую команду:

PUT /products/_mapping  
{  
  "properties": {  
    "name": {  
      "type": "text"  
    },  
    "price": {  
      "type": "float"  
    }  
  }  
}  

В приведенном выше примере мы определили Mapping для products  индекса поле, name  имеющее тип данных text, и поле цены, имеющее тип данных float. Это гарантирует, что при Elasticsearch получении новых документов для products  индекса он будет хранить и обрабатывать name  поля и «цена» в соответствии с определенными типами данных.

Index и Mapping играют решающую роль в организации и управлении данными в Elasticsearch. Они помогают Elasticsearch эффективно понимать и обрабатывать данные, оптимизировать операции поиска и запросов и обеспечивают гибкие возможности масштабирования системы.