Poizvedba na podlagi ključnih besed(Match Query)
Poizvedba za ujemanje se uporablja za iskanje dokumentov, ki vsebujejo določene ključne besede. Vrnil bo dokumente, ki imajo vsaj eno ustrezno ključno besedo.
Primer: poiščite izdelke z imenom, ki vsebuje ključno besedo laptop
v products Index
.
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
Vsebovati mora vse ključne besede(Match Phrase Query)
Poizvedba Match Phrase zahteva, da se vse ključne besede v poizvedbi pojavijo zaporedno in v pravilnem vrstnem redu v besedilu dokumenta.
Primer: poiščite izdelke z opisom, ki vsebuje frazo HP laptop
.
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
Vsebovati mora predpono celotne fraze(Match Phrase Prefix Query)
Poizvedba Match Phrase Prefix je podobna Match Phrase, vendar omogoča delno ujemanje zadnje ključne besede.
Primer: poiščite izdelke, katerih opis se začne z laptop
.
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
Poizvedba na podlagi izraza(poizvedba izraza)
Poizvedba Izraz se uporablja za iskanje dokumentov s poljem, ki ima točno določeno vrednost.
Primer: poiščite izdelke s category
poljem z vrednostjo laptop
.
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
Poizvedba na podlagi obsega(Range Query)
Poizvedba Range pomaga iskati dokumente z vrednostjo polja v določenem obsegu.
Primer: poiščite izdelke s cenami med 500 in 1000.
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
Poizvedba na ravni termina
Poizvedbe na ravni izrazov omogočajo iskanje dokumentov na podlagi posebnih pogojev, kot so poizvedbe Exact, Prefix, Range, Wildcard in Fuzzy poizvedbe.
Primer: poiščite izdelke z imenom, ki se začne z laptop
in cenami med 500 in 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text Poizvedba
Full-Text poizvedbe omogočajo iskanje po besedilnih poljih z uporabo algoritmov za analizo besedila za iskanje podobnih besed ali sinonimov.
Primer: poiščite izdelke z opisi, ki vsebujejo bodisi computer
ali laptop
.
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
Logična poizvedba
Boolean
poizvedbe omogočajo združevanje več podpoizvedb z različnimi pogoji iskanja, na primer mora vsebovati vse, mora vsebovati vsaj eno ali ne sme vsebovati, da bi dosegli natančne rezultate iskanja.
Primer: poiščite izdelke z category
bitjem laptop
in cenami med 500 in 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
To so osnovne iskalne poizvedbe v Elasticsearch, skupaj z ilustriranimi primeri za vsako vrsto poizvedbe. Ko uporabljate Elasticsearch, lahko kombinirate te poizvedbe za prilagodljivo in učinkovito iskanje podatkov.