გაგება Index და Mapping ში Elasticsearch

რა თქმა უნდა! აქ არის ახსნა-განმარტების თარგმანი და Index მაგალითები: Mapping Elasticsearch

Index in Elasticsearch

In მსგავსია მონაცემთა ბაზის ტრადიციული მართვის სისტემებში(DBMS) Index. Elasticsearch ის ინახავს დაკავშირებული დოკუმენტების კოლექციას. თითოეული Index ჩვეულებრივ შეესაბამება თქვენს აპლიკაციაში არსებულ მონაცემებს. მაგალითად, ელექტრონული კომერციის აპლიკაციაში შეგიძლიათ შექმნათ Index პროდუქტის შესახებ ინფორმაციის შესანახად, მეორე კი Index მომხმარებლებისა და შეკვეთების შესახებ ინფორმაციის შესანახად.

თითოეული Index in 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 in Elasticsearch

Mapping არის პროცესი იმის განსაზღვრის, თუ როგორ Elasticsearch ინახავს და ამუშავებს მონაცემებს შიგთავსში Index. როდესაც ახალ დოკუმენტს ამატებთ Index, Elasticsearch გამოიყენება Mapping დოკუმენტში თითოეული ველის მონაცემთა ტიპის დასადგენად. ეს გვეხმარება Elasticsearch იმის გაგებაში, თუ როგორ უნდა დამუშავდეს და მოძებნოთ მონაცემები სხვადასხვა სფეროში.

მაგალითად, თუ გვაქვს Index products და გვინდა განვსაზღვროთ(პროდუქტის Mapping სახელი name) და price  (პროდუქტის ფასი) ველები, როგორც ტექსტი და float ტიპები, შესაბამისად, შეგვიძლია შევასრულოთ შემდეგი ბრძანება:

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

ზემოთ მოცემულ მაგალითში ჩვენ განვსაზღვრეთ Mapping ინდექსისთვის products  , ველს name  აქვს მონაცემთა ტიპი text და ფასის ველს აქვს მონაცემთა ტიპი float. ეს უზრუნველყოფს, რომ Elasticsearch ინდექსისთვის ახალი დოკუმენტების მიღებისას products  ის შეინახავს და დაამუშავებს name  და „ფასის“ ველებს მონაცემთა განსაზღვრული ტიპების მიხედვით.

Index და Mapping შეასრულოს გადამწყვეტი როლი მონაცემთა ორგანიზებასა და მართვაში Elasticsearch. ისინი ეხმარებიან Elasticsearch მონაცემთა ეფექტურად გაგებასა და დამუშავებას, ძიების და მოთხოვნის ოპერაციების ოპტიმიზაციას და სისტემისთვის მოქნილ მასშტაბურობის შესაძლებლობებს.