Osnovni upiti za pretraživanje u Elasticsearch: Sveobuhvatni vodič

Upit temeljen na ključnim riječima(Match Query)

Upit za podudaranje koristi se za traženje dokumenata koji sadrže određene ključne riječi. Vratit će dokumente koji imaju barem jednu odgovarajuću ključnu riječ.

Primjer: Pronađite proizvode čiji naziv sadrži ključnu riječ laptop  u products Index.

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

 

Mora sadržavati sve ključne riječi(Match Phrase Query)

Upit za podudaranje izraza zahtijeva da se sve ključne riječi u upitu pojavljuju uzastopno i točnim redoslijedom unutar teksta dokumenta.

Primjer: Pronađite proizvode čiji opis sadrži izraz HP laptop.

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

 

Mora sadržavati prefiks cijele fraze(Match Phrase Prefix Query)

Upit za podudaranje prefiksa izraza sličan je upitu za podudaranje izraza, ali dopušta djelomično podudaranje posljednje ključne riječi.

Primjer: Pronađite proizvode čiji opis počinje s laptop.

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

 

Upit temeljen na pojmu(upit pojma)

Upit pojma koristi se za traženje dokumenata s poljem koje ima točnu vrijednost kao što je navedeno.

Primjer: Pronađite proizvode s category poljem koje ima vrijednost laptop.

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

 

Upit temeljen na rasponu(Range Query)

Upit Raspon pomaže u traženju dokumenata s vrijednošću polja unutar određenog raspona.

Primjer: Pronađite proizvode s cijenama između 500 i 1000.

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

 

Upit na razini pojma

Upiti na razini pojma omogućuju pretraživanje dokumenata na temelju specifičnih uvjeta kao što su Točni, Prefiks, Raspon, Zamjenski i Neizraziti upiti.

Primjer: Pronađite proizvode s nazivom koji počinje s laptop i cijenama između 500 i 1000.

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

 

Full-Text Upit

Full-Text upiti omogućuju pretraživanje tekstualnih polja pomoću algoritama za analizu teksta za pronalaženje sličnih riječi ili sinonima.

Primjer: Pronađite proizvode čiji opisi sadrže computer  ili laptop.

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

 

Booleov upit

Boolean upiti omogućuju kombiniranje više podupita s različitim uvjetima pretraživanja, kao što su mora sadržavati sve, mora sadržavati barem jedan ili ne smije sadržavati, kako bi se postigli precizni rezultati pretraživanja.

Primjer: Pronađite proizvode čija je category vrijednost laptop  i cijena između 500 i 1000.

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

 

Ovo su osnovni upiti za pretraživanje u Elasticsearch, zajedno s ilustriranim primjerima za svaku vrstu upita. Kada koristite Elasticsearch, možete kombinirati ove upite za fleksibilno i učinkovito pretraživanje podataka.