Kas yra žemėlapių tipai?
Elasticsearch programoje kiekvienas dokumentas priklauso indeksui ir tipui. Indeksą galima laikyti duomenų baze, o tipą galima laikyti lentele, palyginti su santykių duomenų baze. Žemėlapio tipas buvo loginis objekto skaidinys su kitais objektais, kurie priklausė kitiems to paties indekso atvaizdavimo tipams.
Kiekvienas atvaizdavimo tipas turi savo laukus. Pavyzdžiui, tipo Vartotojas gali turėti šiuos laukus:
„id“: 123,
"name": "Shubham",
„svetainė“: 1
Kitas to paties indekso atvaizdavimo tipas Interneto svetainė gali turėti šiuos laukus, kurie visiškai skiriasi nuo Vartotojas tipas:
„id“: 1,
"title": "LinuxHint",
"link": "https: // linuxhint.com / "
Ieškant dokumento rodyklėje, paieška galėjo būti apribota vienu dokumentu, nurodant vieną lauką kaip:
GAUTI idx_name / user, website / _search„užklausa“:
„rungtynės“:
„id“: 1
The _ tipas dokumentų laukas buvo derinamas su jo _id generuoti a _uid lauke taip dokumentus su tuo pačiu _id galėtų egzistuoti viename indekse.
Perskaitykite „Elasticsearch“ pamoką pradedantiesiems, kad galėtumėte geriau suprasti „Elasticsearch“ architektūrą, ir pradėkite ją naudodami „Install ElasticSearch“ Ubuntu.
Kodėl kartografavimo tipai pašalinami?
Kaip ir tai, ką pasakėme aukščiau, aiškindami, kaip indeksas ir tipai buvo panašūs į duomenų bazę ir lentelę reliacinėje duomenų bazėje, „Elasticsearch“ komanda manė tą patį, bet taip nebuvo, nes „Lucene Engine“ nesilaiko tos pačios analogijos. Taip yra dėl šių priežasčių:
- Reliacinėje duomenų bazėje lentelės yra nepriklausomos viena nuo kitos ir stulpelių pavadinimas, net jei jie yra vienodi, neturi tarpusavio ryšio. Tai nėra tas atvejis, kai laukai naudojami žemėlapių tipuose, kaip ES, laukai tuo pačiu pavadinimu viduje laikomi tuo pačiu „Lucene Engine“ lauku.
- Aukščiau pateiktame pavyzdyje laukas _id į Vartotojas tipas ir Interneto svetainė tipas saugomas tame pačiame lauke ir turėtų būti visiškai tokio paties tipo, kuris gali sukelti nusivylimą ir painiavą.
- Saugant objektus, kuriuose nėra bendrų laukų, „Lucene“ sustabdo efektyvų dokumentų glaudinimą.
Žemėlapių tipų alternatyvos
Nors sprendimas buvo priimtas, vis tiek turime atskirti skirtingų tipų duomenis. Pirmoji alternatyva yra atskirus dokumentus savo rodyklėje kuris turi du pranašumus:
- Dabar, kai duomenys yra įprasti kiekviename rodyklėje, „Lucene“ gali labai lengvai pritaikyti savo duomenų glaudinimo metodus.
- Dabar, kai visi indekso dokumentai turi tuos pačius laukus, visiško teksto paieškos galimybės nepaprastai padidėja, nes padidėja kiekvieno dokumento balai.
Kita duomenų atskyrimo alternatyva yra įpročio išlaikymas _ tipas laukas kiekviename įterpiamame dokumente, pavyzdžiui:
ĮDĖKITE db_name / doc / 123"type": "user",
„id“: 123,
"name": "Shubham",
„svetainė“: 1
ĮDĖKITE db_name / doc / svetainę
"type": "svetainė",
„id“: 1,
"title": "LinuxHint",
"link": "https: // linuxhint.com / "
Tai puikus panaudojimas, jei ieškote išsamaus pasirinktinio sprendimo.
Žemėlapių tipų pašalinimo tvarkaraštis
Kadangi žemėlapių tipų pašalinimas yra didelis pokytis, ES komanda procesą atlieka lėtai. Čia pateikiamas iš elastingo ištraukto grafiko grafikas.bendradarbis:
- Elastikos tyrimai 7.x
- The tipo parametras URL yra neprivalomas. Pavyzdžiui, norint indeksuoti dokumentą, nebereikia dokumento tipo.
- The _numatytas_ atvaizdavimo tipas pašalinamas.
- Elastikos paieška 8.x
- The tipo parametras nebepalaikomas URL.
- The include_type_name parametras yra numatytasis melagingas.
- Elastikos tyrimai 9.x
- The include_type_name parametras pašalintas.
Išvada
Šioje pamokoje apžvelgėme, kodėl „Elasticsearch Mapping“ tipai buvo pašalinti ir būsimose versijose bus visiškai nepalaikomi.