Koje su vrste mapiranja?
U programu Elasticsearch svaki dokument pripada indeksu i tipu. Indeks se može smatrati bazom podataka, dok se vrsta može vidjeti kao tablica u usporedbi s relacijskom bazom podataka. Vrsta mapiranja bila je logična particija objekta s drugim objektima koji su pripadali drugim vrstama mapiranja u istom indeksu.
Svaka vrsta mapiranja ima svoja polja. Na primjer, vrsta korisnik može imati sljedeća polja:
"id": 123,
"name": "Shubham",
"web stranica": 1
Još jedan tip mapiranja u istom indeksu web stranica može imati sljedeća polja koja se potpuno razlikuju od korisnik tip:
"id": 1,
"title": "LinuxHint",
"link": "https: // linuxhint.com / "
Tijekom pretraživanja dokumenta u indeksu, pretraživanje je moglo biti ograničeno na jedan dokument navođenjem jednog polja kao:
GET idx_name / korisnik, web stranica / _search"upit":
"podudaranje":
"id": 1
The _tip polje dokumenata kombinirano je sa svojim _iskaznica generirati a _uid polje tako dokumenti s istim _iskaznica mogao postojati u jednom indeksu.
Pročitajte Elasticsearch Vodič za početnike za dublje razumijevanje Elasticsearch arhitekture i započnite s tim s Instaliranjem ElasticSearch na Ubuntu.
Zašto se uklanjaju vrste mapiranja?
Baš kao što smo rekli gore dok smo objašnjavali kako su indeks i tipovi slični bazi podataka i tablici u relacijskoj bazi podataka, tim Elasticsearch-a mislio je isto, ali to nije bio slučaj jer Lucene Engine ne slijedi istu analogiju. To je zbog sljedećih razloga:
- U relacijskoj bazi podataka tablice su neovisne jedna o drugoj i nazivu stupaca, čak i ako su iste nemaju međusobne veze. To nije slučaj s poljima u vrstama mapiranja kao u ES, polja s istim nazivom interno se tretiraju kao ista polja Lucene Engine.
- U gornjem primjeru polje _iskaznica u korisnik vrsta i web stranica tip pohranjen je u isto polje i trebao bi imati potpuno isti tip što može dovesti do frustracije i zbunjenosti.
- Pohrana entiteta bez zajedničkih polja zaustavlja Lucene radi učinkovite kompresije dokumenata.
Alternative vrstama mapiranja
Iako je odluka donesena, još uvijek moramo razdvojiti različite vrste podataka. Sada je prva alternativa odvojeni dokumenti u vlastitom indeksu što ima dvije prednosti:
- Sad kad su podaci uobičajeni u svakom indeksu, Lucene vrlo lako može primijeniti vlastite tehnike kompresije podataka.
- Sad kad svi dokumenti u indeksu imaju ista polja, mogućnosti pretraživanja cjelovitog teksta fenomenalno se povećavaju kako se povećavalo bodovanje svakog dokumenta.
Druga alternativa razdvajanju podataka je održavanje prilagođenosti _tip polje u svaki dokument koji ubacimo, poput:
STAVITE db_name / doc / 123"type": "user",
"id": 123,
"name": "Shubham",
"web stranica": 1
STAVITE db_name / doc / web mjesto
"type": "web stranica",
"id": 1,
"title": "LinuxHint",
"link": "https: // linuxhint.com / "
Ovo je izvrsna upotreba ako tražite cjelovito prilagođeno rješenje.
Raspored uklanjanja vrsta mapiranja
Kako je uklanjanje tipova mapiranja velika promjena, ES tim polako radi postupak. Evo rasporeda izvlačenja izvađenog iz elastike.suradnik:
- Elasticsearch 7.x
- The tip parametar u URL-ovima nije obavezan. Na primjer, za indeksiranje dokumenta više nije potrebna vrsta dokumenta.
- The _zadano_ vrsta mapiranja je uklonjena.
- Elasticsearch 8.x
- The tip parametar više nije podržan u URL-ovima.
- The uključi_ime_tipa zadani parametar na lažno.
- Elasticsearch 9.x
- The uključi_ime_tipa parametar je uklonjen.
Zaključak
U ovoj smo lekciji pogledali zašto su uklonjeni tipovi Elasticsearch Mapping i koji će u potpunosti biti podržani u nadolazećim verzijama.