Elastisk søgning

Hvorfor blev ES-kortlægningstyper fjernet i ES v6.0?

Hvorfor blev ES-kortlægningstyper fjernet i ES v6.0?

Hvad er kortlægningstyper?

I Elasticsearch tilhører hvert dokument et indeks og en type. Et indeks kan betragtes som en database, mens en type kan ses som en tabel sammenlignet med en relationsdatabase. En kortlægningstype var en logisk partition af et objekt med andre objekter, der tilhørte andre kortlægningstyper i det samme indeks.

Hver kortlægningstype har sine egne felter. For eksempel en type bruger kan have følgende felter:


"id": 123,
"name": "Shubham",
"websted": 1

En anden kortlægningstype i det samme indeks internet side kan have følgende felter, som er helt forskellige fra bruger type:


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

Under søgning efter et dokument i et indeks kunne søgningen have været begrænset til et enkelt dokument ved at angive et enkelt felt som:

FÅ idx_name / bruger, website / _search

"forespørgsel":
"match":
"id": 1


Det _type felt af dokumenterne blev kombineret med dets _id at generere en _uid felt så dokumenter med samme _id kunne eksistere i et enkelt indeks.

Læs Elasticsearch Tutorial for begyndere for en dybere forståelse af Elasticsearch Architecture og kom i gang med det med Install ElasticSearch på Ubuntu.

Hvorfor fjernes kortlægningstyper?

Ligesom hvad vi sagde ovenfor, mens vi forklarede, hvordan indeks og typer lignede en database og en tabel i en relationsdatabase, troede Elasticsearch-team det samme, men dette var ikke tilfældet, da Lucene Engine ikke følger den samme analogi. Dette skyldes følgende årsager:

Alternativer til kortlægningstyper

Selvom beslutningen er taget, er vi stadig nødt til at adskille forskellige typer data. Nu er det første alternativ til separate dokumenter i deres eget indeks som har to fordele:

Et andet alternativ til at adskille data er at opretholde en brugerdefineret _type felt i hvert dokument, vi indsætter, som:

PUT db_name / doc / 123

"type": "bruger",
"id": 123,
"name": "Shubham",
"websted": 1

PUT db_name / doc / website

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

Dette er en fremragende brug, hvis du leder efter en komplet brugerdefineret løsning.

Tidsplan for fjernelse af kortlægningstyper

Da fjernelse af kortlægningstyper er en stor ændring, gør ES-teamet processen langsomt. Her er en tidsplan for udrulningen ekstraheret fra elastik.co:

Konklusion

I denne lektion kiggede vi på, hvorfor Elasticsearch Mapping-typer blev fjernet og vil ikke være helt understøttet i kommende versioner.

Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...