Elasticsearch og systemer for fulltekstsøk · leksjon

Introduksjon til Query DSL

Forstå strukturen og kraften i Elasticsearchs Query Domain Specific Language (DSL) for avanserte søkeforespørsler.

Leksjon 1 av 411 trinn

Introduksjon til Query DSL er en gratis leksjon i Elasticsearch og systemer for fulltekstsøk på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Elasticsearch og systemer for fulltekstsøk, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Elasticsearch og systemer for fulltekstsøk inneholder totalt 4 leksjoner.

Hva er Query DSL?

Velkommen til Elasticsearch-verdenen! For å finne informasjon bruker De det kraftige språket Query Domain Specific Language (DSL).

Tenk på DSL som et spesialisert søkespråk som er bygget med JSON. Det er slik De forteller Elasticsearch nøyaktig hva De leter etter, fra enkle nøkkelord til komplekse mønstre.

Hvorfor ikke bare SQL?

De kjenner kanskje SQL fra databaser. SQL er svært godt egnet for strukturerte data, mens Query DSL utmerker seg ved fulltekstsøk i ustrukturerte og delvis strukturerte data.

DSL går lenger enn enkel uthenting av data. Det er utviklet for å håndtere relevansberegning, analysere tekst og tilby svært tilpasningsbare søkeopplevelser.

Den grunnleggende spørringsstrukturen

Alle søkeforspørsler som bruker Query DSL, begynner med en "query"-blokk i JSON. Inne i denne blokken definerer De selve søkelogikken.

Den enkleste spørringen er "match_all", som, slik navnet antyder, samsvarer med alle dokumenter i indeksen. Det er en god måte å komme i gang på!

Første DSL-spørring: match_all

La oss se match_all i praksis. Denne kommandoen bruker curl, et vanlig verktøy for samhandling med nettjenester, til å sende en søkeforspørsel til Elasticsearch.

Den henter alle dokumenter fra en indeks (for eksempel en indeks med navnet my_index).

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  }
}'

Forstå spørringskontekst

Når De utfører et søk, bruker Elasticsearch to hovedkontekster: spørringskontekst og filterkontekst. Det er viktig å forstå disse for å kunne utføre effektive søk.

I spørringskontekst avgjør spørringene om et dokument samsvarer, OG hvor relevant det er. Dokumenter som samsvarer, får en relevanspoengsum som brukes til å rangere dem i søkeresultatene.

Forstå filterkontekst

I filterkontekst avgjør spørringene bare om et dokument samsvarer (et enkelt «ja» eller «nei»). De beregner ikke en relevanspoengsum.

Dette gjør filterspørringer mye raskere for enkle filtreringsoppgaver, for eksempel når De vil finne alle dokumenter der et bestemt felt har en nøyaktig verdi. Elasticsearch legger også ofte slike spørringer i hurtigbufferet.

Anatomien til en DSL-spørring

De fleste DSL-spørringer utover match_all retter seg mot bestemte felt i dokumentene og angir betingelser.

  • Spørringstype: for eksempel "match", "term" eller "range"
  • Feltnavn: dokumentfeltet det skal søkes i, for eksempel "title" eller "author"
  • Spørringsverdi/-parametere: verdien det skal søkes etter, for eksempel "Elasticsearch", eller betingelser som "gt": 100

Bygge en enkel match-spørring

match-spørringen er en grunnleggende fulltekstspørring. Den analyserer søkeordet og dokumentfeltet, og ser deretter etter samsvar.

Slik søker De etter dokumenter der feltet description inneholder «search engine»:

curl -X POST "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "description": "search engine"
    }
  }
}'

DSL for avanserte søk

Den virkelige styrken i Query DSL ligger i muligheten til å kombinere flere spørringstyper, bruke boosting (gjøre bestemte treff viktigere) og integrere med Elasticsearchs tekstanalyse.

De kan bygge svært spesifikk og nyansert søkelogikk som går langt utover det enkle databasespørringer kan tilby, og dermed gi bedre og mer relevante resultater for brukerne.

Hurtigsjekk: Formålet med DSL

Hvilket av alternativene nedenfor beskriver best hovedformålet med Elasticsearchs Query DSL?

Oppsummering: Grunnleggende om Query DSL

Godt jobbet! I denne leksjonen har De lært om:

  • Hva Elasticsearchs Query DSL er: et JSON-basert språk for søk.
  • Fordelen sammenlignet med SQL ved fulltekstsøk og relevans.
  • Den grunnleggende strukturen med "query"-blokken og "match_all".
  • Det viktige skillet mellom spørringskontekst (poengberegning) og filterkontekst (ingen poengberegning).

Deretter skal vi gå dypere inn i bestemte spørringstyper, som term- og match-spørringer!

Gratis å komme i gang

Lær deg Elasticsearch og systemer for fulltekstsøk med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Introduksjon til Query DSL» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Elasticsearch og systemer for fulltekstsøk, inkludert «Introduksjon til Query DSL», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Elasticsearch og systemer for fulltekstsøk inneholder totalt 4 leksjoner.

Hva lærer jeg i «Introduksjon til Query DSL»?

Forstå strukturen og kraften i Elasticsearchs Query Domain Specific Language (DSL) for avanserte søkeforespørsler. Du øver på Elasticsearch og systemer for fulltekstsøk med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Elasticsearch og systemer for fulltekstsøk?

Ingen tidligere erfaring er nødvendig. Elasticsearch og systemer for fulltekstsøk på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Introduksjon til Query DSL»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Elasticsearch og systemer for fulltekstsøk-leksjonen?

Ja. Alle Elasticsearch og systemer for fulltekstsøk-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Query DSL
  2. Term- og match-spørringer
  3. Kombinere spørringer med Bool
  4. Filtrering, intervaller og spørringskontekst
← Tilbake til Elasticsearch og systemer for fulltekstsøk