Op zoekwoorden gebaseerde zoekopdracht(Match Query)
De Match-query wordt gebruikt om te zoeken naar documenten die specifieke trefwoorden bevatten. Het retourneert documenten met ten minste één bijbehorend trefwoord.
Voorbeeld: Zoek producten waarvan de naam het trefwoord bevat laptop
in het products Index
.
GET /products/_search
{
"query": {
"match": {
"name": "laptop"
}
}
}
Moet alle zoekwoorden bevatten(Match Phrase Query)
De Match Phrase-query vereist dat alle trefwoorden in de query opeenvolgend en in de juiste volgorde in de documenttekst verschijnen.
Voorbeeld: zoek producten waarvan de beschrijving de woordgroep bevat HP laptop
.
GET /products/_search
{
"query": {
"match_phrase": {
"description": "HP laptop"
}
}
}
Moet het volledige woordgroepvoorvoegsel bevatten(Match Phrase Prefix Query)
De zoekopdracht Match Phrase Prefix is vergelijkbaar met Match Phrase, maar staat een gedeeltelijke match van het laatste trefwoord toe.
Voorbeeld: Zoek producten waarvan de omschrijving begint met laptop
.
GET /products/_search
{
"query": {
"match_phrase_prefix": {
"description": "laptop"
}
}
}
Op termen gebaseerde zoekopdracht(Term Query)
De Term-query wordt gebruikt om te zoeken naar documenten met een veld met een exacte waarde zoals gespecificeerd.
Voorbeeld: Zoek producten waarbij het category
veld de waarde heeft laptop
.
GET /products/_search
{
"query": {
"term": {
"category": "laptop"
}
}
}
Op bereik gebaseerde zoekopdracht(Range Query)
De Range-query helpt bij het zoeken naar documenten met een veldwaarde binnen een opgegeven bereik.
Voorbeeld: Vind producten met prijzen tussen 500 en 1000.
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
}
Zoekopdracht op termniveau
Met zoekopdrachten op termniveau kunt u documenten zoeken op basis van specifieke voorwaarden, zoals zoekopdrachten Exact, Prefix, Range, Wildcard en Fuzzy.
Voorbeeld: Zoek producten waarvan de naam begint met laptop
en prijzen tussen 500 en 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"name": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Full-Text Vraag
Full-Text Met query's kunt u tekstvelden doorzoeken met behulp van algoritmen voor tekstanalyse om vergelijkbare woorden of synoniemen te vinden.
Voorbeeld: zoek producten met beschrijvingen die ofwel computer
of bevatten laptop
.
GET /products/_search
{
"query": {
"match": {
"description": "computer laptop"
}
}
}
Booleaanse vraag
Boolean
Met query's kunt u meerdere subquery's combineren met verschillende zoekvoorwaarden, zoals alles bevatten, ten minste één bevatten of niet bevatten, om nauwkeurige zoekresultaten te krijgen.
Voorbeeld: Zoek producten met het category
wezen laptop
en prijzen tussen 500 en 1000.
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"category": "laptop"
}
},
{
"range": {
"price": {
"gte": 500,
"lte": 1000
}
}
}
]
}
}
}
Dit zijn de basiszoekopdrachten in Elasticsearch, samen met geïllustreerde voorbeelden voor elk zoektype. Wanneer u gebruikt Elasticsearch, kunt u deze zoekopdrachten combineren om flexibel en efficiënt naar gegevens te zoeken.