Kas ir kartēšanas veidi?
Programmā Elasticsearch katrs dokuments pieder indeksam un tipam. Indeksu var uzskatīt par datu bāzi, bet tipu - par tabulu, salīdzinot ar relāciju datu bāzi. Kartēšanas tips bija loģisks objekta nodalījums ar citiem objektiem, kas piederēja citiem kartēšanas veidiem tajā pašā rādītājā.
Katram kartēšanas veidam ir savi lauki. Piemēram, veids lietotājs var būt šādi lauki:
"id": 123,
"name": "Shubham",
"vietne": 1
Vēl viens kartēšanas tips tajā pašā indeksā vietne var būt šādi lauki, kas pilnīgi atšķiras no lietotājs tips:
"id": 1,
"title": "LinuxHint",
"link": "https: // linuxhint.com / "
Meklējot dokumentu indeksā, meklēšanu varēja veikt tikai vienā dokumentā, norādot vienu lauku kā:
IEGŪT idx_name / user, website / _search"vaicājums":
"sakritība":
"id": 1
The _tips dokumentu lauks tika apvienots ar tā _id ģenerēt a _uid lauks tik dokumenti ar to pašu _id varētu pastāvēt vienā indeksā.
Izlasiet Elasticsearch apmācību iesācējiem, lai iegūtu dziļāku izpratni par Elasticsearch arhitektūru, un sāciet to ar Instalēt ElasticSearch Ubuntu.
Kāpēc tiek noņemti kartēšanas veidi?
Tāpat kā tas, ko mēs teicām iepriekš, skaidrojot, kā indekss un veidi bija līdzīgi datu bāzei un tabulai relāciju datu bāzē, arī Elasticsearch komanda domāja tāpat, taču tas tā nebija, jo Lucene Engine neievēro to pašu līdzību. Tas notiek šādu iemeslu dēļ:
- Relāciju datu bāzē tabulas ir neatkarīgas viena no otras un kolonnu nosaukums, pat ja tās ir vienādas, nav savstarpēji saistītas. Tas nav gadījumā ar laukiem kartēšanas veidos, kā ES, lauki ar tādu pašu nosaukumu iekšēji tiek uzskatīti par vienu un to pašu Lucene Engine lauku.
- Iepriekš minētajā piemērā lauks _id iekšā lietotājs tips un vietne tips tiek glabāts tajā pašā laukā, un tam jābūt tieši tādam pašam, kas var izraisīt neapmierinātību un neskaidrības.
- Ja entītijas, kurās nav kopīgu lauku, Lucene efektīvi saspiež dokumentus.
Kartēšanas veidu alternatīvas
Lai gan lēmums ir pieņemts, mums joprojām ir jānošķir dažāda veida dati. Tagad pirmā alternatīva ir atsevišķus dokumentus savā indeksā kam ir divas priekšrocības:
- Tagad, kad dati ir izplatīti katrā indeksā, Lucene var ļoti viegli pielietot savas datu saspiešanas metodes.
- Tagad, kad visiem indeksa dokumentiem ir vienādi lauki, pilna teksta meklēšanas iespējas ievērojami palielinās, jo ir palielinājies katra dokumenta punktu skaits.
Vēl viena alternatīva datu atdalīšanai ir paraduma saglabāšana _tips lauks katrā mūsu ievietotajā dokumentā, piemēram:
IEVADIET db_name / doc / 123"type": "user",
"id": 123,
"name": "Shubham",
"vietne": 1
IEVADIET db_name / doc / vietni
"type": "vietne",
"id": 1,
"title": "LinuxHint",
"link": "https: // linuxhint.com / "
Tas ir lielisks pielietojums, ja meklējat pilnīgu pielāgotu risinājumu.
Kartēšanas veidu noņemšanas grafiks
Tā kā kartēšanas veidu noņemšana ir lielas izmaiņas, ES komanda procesu veic lēni. Šeit ir grafiks, kā izvilkt no elastīgās.co:
- Elasticsearch 7.x
- The tips parametrs vietrāžos URL nav obligāts. Piemēram, dokumenta indeksēšanai vairs nav nepieciešams dokumenta tips.
- The _default_ kartēšanas veids ir noņemts.
- Elasticsearch 8.x
- The tips parametrs vairs netiek atbalstīts vietrāžos URL.
- The include_type_name parametrs pēc noklusējuma ir nepatiesa.
- Elasticsearch 9.x
- The include_type_name parametrs ir noņemts.
Secinājums
Šajā nodarbībā mēs apskatījām, kāpēc tika noņemti Elasticsearch Mapping veidi un nākamajās versijās tie netiks pilnībā atbalstīti.