Elasticsearch og systemer til fuldtekstsøgning · Lektion

Indeksering af dokumenter i Elasticsearch

Forstå, hvordan De indekserer ét eller flere dokumenter i et Elasticsearch-indeks, herunder automatisk generering af ID'er og brugerdefinerede ID'er.

Lektion 1 af 411 trin

Indeksering af dokumenter i Elasticsearch er en gratis Elasticsearch og systemer til fuldtekstsøgning-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Elasticsearch og systemer til fuldtekstsøgning, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Elasticsearch og systemer til fuldtekstsøgning-kurset indeholder 4 lektioner i alt.

Hvad er indeksering?

Velkommen til indeksering! I Elasticsearch er indeksering processen, hvor data gemmes i et indeks, så de kan søges.

Tænk på det som at føje en ny bog til et biblioteks katalog. Du angiver bogens oplysninger, og biblioteket gemmer dem på en måde, der gør bogen nem at finde senere.

Genopfriskning af dokumenter og indeks

Før vi går i gang, lad os hurtigt genopfriske to grundlæggende begreber:

  • Dokument: En grundlæggende informationsenhed i Elasticsearch, der minder om en række i en traditionel database. Det er normalt et JSON-objekt.
  • Indeks: En samling dokumenter med lignende egenskaber. Det svarer til en database i den relationelle verden.

Når du indekserer, føjer du et dokument til et indeks.

Indeks-API'et

Du interagerer med Elasticsearch via dens REST-API. Hvis du vil indeksere et dokument, bruger du typisk HTTP-anmodninger med POST eller PUT.

  • POST /<index>/_doc: Bruges til at indeksere et dokument, ofte med et id, som Elasticsearch genererer.
  • PUT /<index>/_doc/<id>: Bruges til at indeksere et dokument med et bestemt id, som du selv angiver.

Lad os se dem i praksis!

Automatisk genererede id'er

Den enkleste måde at indeksere på er at lade Elasticsearch generere et unikt id til dit dokument. Du bruger metoden POST til slutpunktet _doc uden at angive et id.

Her er et eksempel, hvor curl bruges til at indeksere et dokument i et indeks med navnet products:

curl -X POST "localhost:9200/products/_doc?pretty" \
     -H 'Content-Type: application/json' \
     -d'{"name": "Laptop", "price": 1200}'

Forstå automatisk genererede id'er

Efter den forrige POST-anmodning returnerer Elasticsearch et svar, der indeholder et unikt _id for dit dokument, for eksempel "_id": "AbCdEfGhIjKlMnOpQrSt".

Hvornår bør du bruge automatisk genererede id'er?

  • Når dine data ikke har en naturlig, unik identifikator.
  • Til logge eller midlertidige data, hvor et unikt id ikke er vigtigt som ekstern reference.
  • Når du vil sikre, at der altid oprettes et nyt dokument.

Indeksering med brugerdefinerede id'er

Dine data har ofte allerede en unik identifikator fra et andet system, for eksempel en primærnøgle i en database. I sådanne tilfælde kan du angive dit eget id ved hjælp af metoden PUT.

Id'et angives direkte i URL-stien: /<index>/_doc/<your_id>.

curl -X PUT "localhost:9200/products/_doc/prod_101?pretty" \
     -H 'Content-Type: application/json' \
     -d'{"name": "Smartphone", "price": 800}'

Hvorfor bruge brugerdefinerede id'er?

Brugerdefinerede id'er har flere fordele:

  • Integration: Du kan nemt knytte Elasticsearch-dokumenter til poster i en ekstern database.
  • Forudsigelighed: Du kender dokumentets id på forhånd.
  • Opdateringer: Det bliver enkelt at opdatere bestemte dokumenter, fordi du altid henviser til dem med deres kendte id.

Idempotens med PUT

Et vigtigt begreb ved brug af PUT med et brugerdefineret id er idempotens. Det betyder, at den samme operation udført flere gange giver samme resultat som operationen udført én gang.

  • Hvis der allerede findes et dokument med det angivne id, opdaterer PUT det.
  • Hvis det ikke findes, opretter PUT det.

Det adskiller sig fra POST, som altid opretter et *nyt* dokument med et nyt id.

Indeksering af mange dokumenter

Det er fint at indeksere dokumenter ét ad gangen, når der er få, men det kan være ineffektivt ved store datasæt på grund af netværksomkostninger.

Elasticsearch tilbyder en effektiv _bulk-API, som lader dig udføre flere indekserings-, opdaterings- eller sletteoperationer i én anmodning. Det forbedrer indekseringsydelsen markant.

Vi undersøger _bulk-API'et mere detaljeret i en senere lektion!

Tjek af indekseringsmetode

Forestil dig, at du har et nyt sæt sensormålinger. Hver måling er unik, og du har ikke et foruddefineret id til dem, men du vil gemme dem i Elasticsearch, så de kan søges.

Opsummering: Det vigtigste om indeksering

Godt klaret! I denne lektion lærte du det grundlæggende om at indeksere dokumenter i Elasticsearch:

  • Hvad indeksering betyder, og hvilken rolle det spiller for at gøre data søgbare.
  • Forskellen på dokumenter og indeks.
  • Hvordan du bruger POST /<index>/_doc til at indeksere dokumenter med automatisk genererede id'er.
  • Hvordan du bruger PUT /<index>/_doc/<id> til at indeksere dokumenter med brugerdefinerede id'er.
  • Begrebet idempotens ved brug af PUT.
  • En kort introduktion til effektiv masseindeksering.

Nu undersøger vi flere operationer på disse dokumenter!

Gratis at komme i gang

Lær Elasticsearch og systemer til fuldtekstsøgning med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Indeksering af dokumenter i Elasticsearch” gratis?

Ja — alle 3 lektioner i læringssporet Elasticsearch og systemer til fuldtekstsøgning, inklusive “Indeksering af dokumenter i Elasticsearch”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Elasticsearch og systemer til fuldtekstsøgning-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Indeksering af dokumenter i Elasticsearch”?

Forstå, hvordan De indekserer ét eller flere dokumenter i et Elasticsearch-indeks, herunder automatisk generering af ID'er og brugerdefinerede ID'er. Du øver dig i Elasticsearch og systemer til fuldtekstsøgning med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Elasticsearch og systemer til fuldtekstsøgning?

Der kræves ingen tidligere erfaring. Elasticsearch og systemer til fuldtekstsøgning på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Indeksering af dokumenter i Elasticsearch”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Elasticsearch og systemer til fuldtekstsøgning-lektion?

Ja. Alle Elasticsearch og systemer til fuldtekstsøgning-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Indeksering af dokumenter i Elasticsearch
  2. CRUD-operationer med dokumenter
  3. Grundlæggende mapping og datatyper
  4. Masseindeksering og Bulk API
← Tilbage til Elasticsearch og systemer til fuldtekstsøgning