Elastisch zoeken

Waarom zijn ES Mapping Types verwijderd in ES v6.0?

Waarom zijn ES Mapping Types verwijderd in ES v6.0?

Wat zijn kaarttypen?

In Elasticsearch behoort elk document tot een Index en een Type. Een index kan worden beschouwd als een database, terwijl een type kan worden gezien als een tabel in vergelijking met een relationele database. Een toewijzingstype was een logische partitie van een object met andere objecten die behoorden tot andere toewijzingstypen in dezelfde index.

Elk toewijzingstype heeft zijn eigen velden. Bijvoorbeeld een soort gebruiker kan de volgende velden hebben:


"id" : 123,
"naam" : "Shubham",
"website" : 1

Een ander toewijzingstype in dezelfde index website kan de volgende velden hebben die totaal verschillen van de gebruiker type:


"id" : 1,
"title" : "LinuxHint",
"link" : "https://linuxhint.com/"

Tijdens het zoeken naar een document in een index, had de zoekopdracht kunnen worden beperkt tot een enkel document door een enkel veld op te geven als:

GET idx_name/user,website/_search

"vraag":
"bij elkaar passen":
"id": 1


De _type veld van de documenten werd gecombineerd met zijn _ID kaart een genereren _uid veld dus documenten met hetzelfde _ID kaart zou kunnen bestaan ​​in een enkele index.

Lees Elasticsearch-zelfstudie voor beginners voor een beter begrip van Elasticsearch-architectuur en ga ermee aan de slag door ElasticSearch op Ubuntu te installeren.

Waarom worden toewijzingstypen verwijderd??

Net zoals we hierboven zeiden toen we uitlegden hoe index en typen vergelijkbaar waren met een database en een tabel in een relationele database, dacht Elasticsearch-team hetzelfde, maar dit was niet het geval, omdat Lucene Engine niet dezelfde analogie volgt. Dit vanwege de volgende redenen:

Alternatieven voor kaarttypen

Hoewel de beslissing is genomen, moeten we nog steeds verschillende soorten gegevens scheiden. Het eerste alternatief is nu: aparte documenten in hun eigen index wat twee voordelen heeft:

Een ander alternatief voor het scheiden van de gegevens is het handhaven van een gewoonte _type veld in elk document dat we invoegen, zoals:

PUT db_name/doc/123

"type": "gebruiker",
"id": 123,
"naam": "Shubham",
"website": 1

PUT db_name/doc/website

"type": "website",
"id": 1,
"title": "LinuxHint",
"link": "https://linuxhint.com/"

Dit is een uitstekend gebruik als u op zoek bent naar een complete oplossing op maat.

Schema voor het verwijderen van toewijzingstypen

Omdat het verwijderen van Mapping Types een grote verandering is, voert het ES-team het proces langzaam uit. Hier is een schema voor de uitrol geëxtraheerd uit elastiek.co:

Conclusie

In deze les hebben we gekeken waarom Elasticsearch-toewijzingstypen zijn verwijderd en in de komende versies volledig niet meer worden ondersteund.

Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...
Hoe FPS-teller in Linux-games te tonen
Linux-gaming kreeg een grote duw toen Valve in 2012 Linux-ondersteuning voor Steam-client en hun games aankondigde. Sindsdien hebben veel AAA- en indi...
Sid Meier's Civilization VI downloaden en spelen op Linux and
Inleiding tot het spel Civilization 6 is een moderne versie van het klassieke concept dat werd geïntroduceerd in de serie Age of Empires-games. Het id...