Grunnleggende søk i Elasticsearch: En omfattende veiledning

Søkeordbasert søk(Match Query)

Match-søket brukes til å søke etter dokumenter som inneholder spesifikke nøkkelord. Den vil returnere dokumenter som har minst ett tilsvarende nøkkelord.

Eksempel: Finn produkter med navnet som inneholder søkeordet laptop  i products Index.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "name": "laptop"  
    }  
  }  
}  

 

Må inneholde alle nøkkelord(Match Phrase Query)

Søket Match Phrase krever at alle søkeordene i søket vises fortløpende og i riktig rekkefølge i dokumentteksten.

Eksempel: Finn produkter med beskrivelsen som inneholder uttrykket HP laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase": {  
      "description": "HP laptop"  
    }  
  }  
}  

 

Må inneholde hele fraseprefikset(Match Phrase Prefix Query)

Søket Match Phrase Prefix ligner på Match Phrase, men det tillater et delvis samsvar med det siste søkeordet.

Eksempel: Finn produkter med beskrivelsen som begynner med laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "description": "laptop"  
    }  
  }  
}  

 

Term-basert søk(Term Query)

Term-spørringen brukes til å søke etter dokumenter med et felt som har en nøyaktig verdi som spesifisert.

Eksempel: Finn produkter med category feltet som har verdien laptop.

GET /products/_search  
{  
  "query": {  
    "term": {  
      "category": "laptop"  
    }  
  }  
}  

 

Områdebasert spørring(Range Query)

Range-spørringen hjelper deg med å søke etter dokumenter med en feltverdi innenfor et spesifisert område.

Eksempel: Finn produkter med priser mellom 500 og 1000.

GET /products/_search  
{  
  "query": {  
    "range": {  
      "price": {  
        "gte": 500,  
        "lte": 1000  
      }  
    }  
  }  
}  

 

Term Level Query

Term Level-spørringer gjør det mulig å søke etter dokumenter basert på spesifikke forhold som Exact, Prefix, Range, Wildcard og Fuzzy-spørringer.

Eksempel: Finn produkter med navnet som begynner med laptop og priser mellom 500 og 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "prefix": {  
            "name": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Full-Text Spørsmål

Full-Text spørringer lar søke i tekstfelt ved hjelp av tekstanalysealgoritmer for å finne lignende ord eller synonymer.

Eksempel: Finn produkter med beskrivelser som inneholder enten computer  eller laptop.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "description": "computer laptop"  
    }  
  }  
}  

 

Boolsk spørring

Boolean spørringer gjør det mulig å kombinere flere undersøk med ulike søkebetingelser, for eksempel må inneholde alle, må inneholde minst én, eller må ikke inneholde, for å oppnå presise søkeresultater.

Eksempel: Finn produkter med category vesen laptop  og priser mellom 500 og 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "term": {  
            "category": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Dette er de grunnleggende søkene i Elasticsearch, sammen med illustrerte eksempler for hver søketype. Når du bruker Elasticsearch, kan du kombinere disse spørringene for å søke etter data fleksibelt og effektivt.