Elasticsearch og systemer for fulltekstsøk · leksjon

Term- og match-spørringer

Lær å bruke `term`-spørringer for eksakt samsvar med verdier og `match`-spørringer for fulltekstanalyse og relevansberegning.

Leksjon 2 av 411 trinn

Term- og match-spørringer er en gratis leksjon i Elasticsearch og systemer for fulltekstsøk på CoddyKit. Dette er leksjon 2 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.

Introduksjon til term- og match-spørringer

Velkommen til det grunnleggende om spørringer mot data i Elasticsearch! I dag skal vi utforske to viktige spørringstyper: term og match.

Det er avgjørende å forstå forskjellene mellom dem for å kunne utføre effektive søk. Vi skal lære når De bør bruke hver av dem for å få akkurat resultatene De trenger, enten det gjelder en nøyaktig verdi eller et fleksibelt fulltekstsøk.

Indeksere eksempeldokumenter

Før vi utfører spørringer, skal vi indeksere noen enkle dokumenter i en indeks kalt products. Vi bruker disse eksemplene gjennom hele leksjonen.

Kjør disse curl-kommandoene i terminalen (forutsatt at Elasticsearch kjører på localhost:9200):

curl -X PUT "localhost:9200/products/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Laptop Pro X1",
  "category": "Electronics",
  "description": "A powerful and lightweight laptop for professionals.",
  "price": 1200
}'

curl -X PUT "localhost:9200/products/_doc/2?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Wireless Mouse",
  "category": "Accessories",
  "description": "Ergonomic wireless mouse with long battery life.",
  "price": 25
}'

curl -X PUT "localhost:9200/products/_doc/3?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Gaming Keyboard",
  "category": "Electronics",
  "description": "Mechanical keyboard for intense gaming sessions.",
  "price": 90
}'

`term`-spørring: Nøyaktige treff

term-spørringen brukes til å finne nøyaktige verdier i et felt. Den ser etter et presist samsvar uten tekstanalyse (for eksempel konvertering til små bokstaver eller stemming).

  • Den egner seg godt for strukturerte data som produkt-ID-er, kategorier, tagger eller statusfelt.
  • Den fungerer best med felt som er mappet som keyword (ikke-analyserte strenger) eller numeriske typer.

`term`-spørring i praksis

La oss finne alle produkter med den nøyaktige kategorien «Electronics». Legg merke til at vi spør mot category.keyword, fordi standardfeltet text ville blitt analysert.

Prøv denne curl-kommandoen:

curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "term": {
      "category.keyword": "Electronics"
    }
  }
}'

Forstå .keyword

Når De indekserer et strengfelt (for eksempel category), oppretter Elasticsearch ofte to versjoner som standard:

  • category: Et text-felt som analyseres (deles opp i ord og konverteres til små bokstaver).
  • category.keyword: Et keyword-felt som behandles som én enkelt, nøyaktig streng.

term-spørringen forventer et nøyaktig samsvar. Ved å bruke underfeltet .keyword sikrer De derfor at spørringsstrengen ikke analyseres, og at den samsvarer med den lagrede verdien.

`match`-spørring: Fulltekstsøkets styrke

match-spørringen er førstevalget for fulltekstsøk. I motsetning til term er den laget for å håndtere tekst på en intelligent måte.

  • Den utfører tekstanalyse av søket.
  • Den deler spørringsstrengen opp i enkeltstående termer, konverterer dem til små bokstaver og utfører noen ganger stemming (for eksempel «running» -> «run»).
  • Deretter finner den dokumenter som inneholder disse analyserte termene, og tildeler også en relevanspoengsum.

`match`-spørring i praksis

La oss søke etter produkter med «powerful laptop» i description. Selv om dokumentet inneholder «A powerful and lightweight laptop», vil match-spørringen finne det.

Prøv denne curl-kommandoen:

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

Magien ved tekstanalyse

Når De bruker en match-spørring, settes Elasticsearchs tekstanalyseprosess i gang:

  1. Tokenisering: «powerful laptop» blir til «powerful» og «laptop».
  2. Konvertering til små bokstaver: «Powerful» blir til «powerful».
  3. Stoppord: Vanlige ord som «a» og «the» kan bli fjernet (avhengig av analysatoren).

Dette gjør match-spørringer svært fleksible ved naturlige språksøk, slik at de finner relevante resultater selv ved små variasjoner i formulering eller bruk av store og små bokstaver.

`term` kontra `match`: Viktige forskjeller

Her er en kort oppsummering av når De bør bruke hver spørringstype:

  • term-spørring:
    - For treff på nøyaktige verdier.
    - Utfører IKKE tekstanalyse av spørringsstrengen.
    - Best egnet for keyword-felt, ID-er og presise filtre.
  • match-spørring:
    - For fulltekstsøk.
    - UTFØRER tekstanalyse av spørringsstrengen.
    - Best egnet for text-felt, søkefelt og beskrivende innhold.

Kontroll av spørringsforståelse

Hvilke av følgende utsagn er riktige når det gjelder term- og match-spørringer i Elasticsearch?

Oppsummering: `term` og `match`

Godt jobbet! De har lært den grunnleggende forskjellen mellom term- og match-spørringer.

  • term brukes til presise søk etter eksakte verdier.
  • match brukes til fleksible fulltekstsøk som utnytter kraftig tekstanalyse.

Å vite når hver av dem skal brukes, er avgjørende for å bygge gode søkeopplevelser. Deretter skal vi se på hvordan De kan kombinere disse og andre spørringer for å lage enda mer avansert søkelogikk!

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 «Term- og match-spørringer» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Elasticsearch og systemer for fulltekstsøk, inkludert «Term- og match-spørringer», 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 «Term- og match-spørringer»?

Lær å bruke `term`-spørringer for eksakt samsvar med verdier og `match`-spørringer for fulltekstanalyse og relevansberegning. 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 2 av 4.

Hvor lang tid tar leksjonen «Term- og match-spørringer»?

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