Mis on kaardistamise tüübid?
Elasticsearchis kuulub iga dokument indeksisse ja tüübi. Indeksit võib pidada andmebaasiks, samas kui tüüpi võib pidada tabeliks, võrreldes relatsioonilise andmebaasiga. Kaardistustüüp oli objekti loogiline partitsioon koos teiste objektidega, mis kuulusid samas indeksis teistele kaardistamistüüpidele.
Igal kaardistustüübil on oma väljad. Näiteks teatud tüüpi kasutaja võib olla järgmine väli:
"id": 123,
"nimi": "Shubham",
"veebisait": 1
Teine kaardistamise tüüp samas indeksis veebisaidil võib olla järgmine väli, mis on täiesti erinev kasutaja tüüp:
"id": 1,
"pealkiri": "LinuxHint",
"link": "https: // linuxhint.com / "
Indeksist dokumendi otsimisel oleks otsingu saanud piirata ühe dokumendiga, määrates ühe välja järgmiselt:
GET idx_name / kasutaja, veebisait / _search"päring":
"vaste":
"id": 1
The _tüüp dokumentide väli ühendati selle _id genereerida a _uid väli nii dokumendid sama _id võiks eksisteerida ühes indeksis.
Lugege Elasticsearchi õpetust algajatele, et paremini mõista Elasticsearchi arhitektuuri, ja alustage sellega, installides Ubuntu ElasticSearchi.
Miks kaardistamise tüübid eemaldatakse?
Täpselt nagu me eespool ütlesime, selgitades, kuidas indeks ja tüübid olid sarnased andmebaasi ja suhteliste andmebaaside tabeliga, arvas Elasticsearchi meeskond sama, kuid see ei olnud nii, kuna Lucene Engine ei järgi sama analoogiat. Selle põhjuseks on järgmised põhjused:
- Relatsiooniandmebaasis on tabelid üksteisest sõltumatud ja veergude nimed, isegi kui need on samad, pole nende vahel mingit seost. See pole nii kaardistamistüüpide väljade puhul nagu ES-s, samanimelisi välju käsitletakse sisemiselt sama Lucene Engine'i väljadena.
- Ülaltoodud näites väli _id aastal kasutaja tüüp ja veebisaidil tüüp salvestatakse samale väljale ja sellel peaks olema täpselt sama tüüp, mis võib põhjustada pettumust ja segadust.
- Üksuste, millel pole ühiseid välju, salvestamine peatab Lucene'i dokumentide tõhusaks tihendamiseks.
Alternatiivid kaardistamise tüüpidele
Kuigi otsus on langetatud, peame siiski eraldama eri tüüpi andmed. Nüüd on esimene alternatiiv eraldi dokumendid oma registris millel on kaks eelist:
- Nüüd, kui andmed on igas indeksis tavalised, saab Lucene oma andmete tihendamise tehnikaid väga lihtsalt rakendada.
- Nüüd, kui kõigil indeksis olevatel dokumentidel on samad väljad, suurenevad täisteksti otsimise võimalused fenomenaalselt, kui iga dokumendi hinded on kasvanud.
Teine alternatiiv andmete eraldamisele on tava säilitamine _tüüp väli igas meie sisestatud dokumendis, näiteks:
PANE db_name / doc / 123"type": "kasutaja",
"id": 123,
"nimi": "Shubham",
"veebisait": 1
PANU db_name / doc / veebisait
"type": "veebisait",
"id": 1,
"pealkiri": "LinuxHint",
"link": "https: // linuxhint.com / "
See on suurepärane kasutusviis, kui otsite täielikku kohandatud lahendust.
Kaardistustüüpide eemaldamise ajakava
Kuna kaardistamistüüpide eemaldamine on suur muudatus, teeb ES meeskond seda protsessi aeglaselt. Siin on elastsest eraldatud väljavõtmise ajakava.kaas:
- Elasticsearch 7.x
- The tüüp URL-i parameeter on valikuline. Näiteks ei vaja dokumendi indekseerimine enam dokumendi tüüpi.
- The _default_ kaardistamise tüüp on eemaldatud.
- Elasticsearch 8.x
- The tüüp parameetrit URL-ides enam ei toetata.
- The kaasata_tüübi_nimi parameetri vaikeväärtus on vale.
- Elasticsearch 9.x
- The kaasata_tüübi_nimi parameeter on eemaldatud.
Järeldus
Selles õppetükis vaatasime, miks Elasticsearchi kaardistamise tüübid eemaldati ja mida järgmistes versioonides täielikult ei toetata.