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.