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.