Term- en match-queries
Leer `term`-queries te gebruiken voor exacte waardevergelijking en `match`-queries voor full-textanalyse en relevantiescores.
Term- en match-queries is een gratis Elasticsearch en systemen voor zoeken in volledige tekst-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Elasticsearch en systemen voor zoeken in volledige tekst. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Elasticsearch en systemen voor zoeken in volledige tekst bevat in totaal 4 lessen.
Introductie tot term- en match-queries
Welkom bij de basis van het opvragen van gegevens in Elasticsearch! Vandaag bekijken we twee essentiële querytypen: term en match.
Het is cruciaal dat je hun verschillen begrijpt om effectief te kunnen zoeken. Je leert wanneer je elk type gebruikt om precies de resultaten te krijgen die je nodig hebt, of het nu om een exacte waarde of een flexibele zoekopdracht in volledige tekst gaat.
Voorbeelddocumenten indexeren
Voordat we queries uitvoeren, indexeren we enkele eenvoudige documenten in een index met de naam products. We gebruiken deze voorbeelden in de hele les.
Voer deze curl-opdrachten uit in je terminal, ervan uitgaande dat Elasticsearch actief is op localhost:9200:
curl -X PUT "localhost:9200/products/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Laptop Pro X1",
"category": "Electronics",
"description": "A powerful and lightweight laptop for professionals.",
"price": 1200
}'
curl -X PUT "localhost:9200/products/_doc/2?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Wireless Mouse",
"category": "Accessories",
"description": "Ergonomic wireless mouse with long battery life.",
"price": 25
}'
curl -X PUT "localhost:9200/products/_doc/3?pretty" -H 'Content-Type: application/json' -d'
{
"name": "Gaming Keyboard",
"category": "Electronics",
"description": "Mechanical keyboard for intense gaming sessions.",
"price": 90
}'De query <code>term</code>: exacte overeenkomsten
De term-query wordt gebruikt om exacte waarden in een veld te vinden. De query zoekt naar een precieze overeenkomst zonder tekstanalyse, zoals het omzetten naar kleine letters of het terugbrengen tot een stam.
- De query is ideaal voor gestructureerde gegevens, zoals product-ID's, categorieën, tags of statusvelden.
- De query werkt het best met velden die als
keyword(niet-geanalyseerde tekenreeksen) of als numerieke typen zijn gemapt.
De query <code>term</code> in actie
Laten we alle producten met de exacte categorie "Electronics" vinden. Let erop dat we category.keyword opvragen, omdat het standaardveld text zou worden geanalyseerd.
Probeer deze curl-opdracht:
curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"term": {
"category.keyword": "Electronics"
}
}
}'.keyword begrijpen
Wanneer je een tekenreeksveld indexeert, zoals category, maakt Elasticsearch standaard vaak twee versies:
category: een veld van het typetext, dat wordt geanalyseerd (opgesplitst in woorden en omgezet naar kleine letters).category.keyword: een veld van het typekeyword, dat als één exacte tekenreeks wordt behandeld.
De term-query verwacht een exacte overeenkomst. Daarom zorgt het subveld .keyword ervoor dat je querytekenreeks niet wordt geanalyseerd en overeenkomt met de exact opgeslagen waarde.
De query <code>match</code>: krachtig zoeken in volledige tekst
De match-query is de aangewezen keuze voor zoeken in volledige tekst. In tegenstelling tot term is deze query ontworpen om slim met tekst om te gaan.
- De query voert tekstanalyses uit op je zoekopdracht.
- De query splitst je zoektekenreeks op in afzonderlijke termen, zet ze om naar kleine letters en brengt ze soms terug tot hun stam (bijvoorbeeld "running" -> "run").
- Vervolgens vindt de query documenten die deze geanalyseerde termen bevatten en kent hij ook een relevatiescore toe.
De query <code>match</code> in actie
We gaan zoeken naar producten met "powerful laptop" in hun description. Zelfs als het document "A powerful and lightweight laptop" bevat, zal de match-zoekopdracht dit vinden.
Probeer deze curl-opdracht:
curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"description": "powerful laptop"
}
}
}'De magie van tekstanalyse
Wanneer je een match-zoekopdracht gebruikt, treedt het tekstanalyseproces van Elasticsearch in werking:
- Tokenisatie: "powerful laptop" wordt "powerful" en "laptop".
- Omzetten naar kleine letters: "Powerful" wordt "powerful".
- Stopwoorden: Veelvoorkomende woorden zoals "a" en "the" kunnen worden verwijderd (afhankelijk van de analyzer).
Hierdoor zijn match-zoekopdrachten zeer flexibel voor zoeken in natuurlijke taal: ze vinden relevante resultaten, zelfs bij kleine verschillen in formulering of hoofdlettergebruik.
`term` versus `match`: belangrijkste verschillen
Hier volgt een korte samenvatting van wanneer je elk type zoekopdracht gebruikt:
term-zoekopdracht:
- Voor het zoeken naar exacte waarden.
- Voert geen tekstanalyse uit op de tekenreeks van de zoekopdracht.
- Ideaal voorkeyword-velden, ID's en nauwkeurige filters.match-zoekopdracht:
- Voor zoeken in volledige tekst.
- Voert tekstanalyse uit op de tekenreeks van de zoekopdracht.
- Ideaal voortext-velden, zoekbalken en beschrijvende inhoud.
Controle van je begrip van zoekopdrachten
Welke van de volgende uitspraken over term- en match-zoekopdrachten in Elasticsearch zijn juist?
Samenvatting: `term` en `match`
Goed gedaan! Je hebt het fundamentele verschil tussen term- en match-zoekopdrachten geleerd.
termis bedoeld voor gerichte zoekopdrachten naar exacte waarden.matchis bedoeld voor flexibele zoekopdrachten in volledige tekst, waarbij krachtige tekstanalyse wordt gebruikt.
Weten wanneer je elk type gebruikt, is essentieel voor het bouwen van effectieve zoekervaringen. Hierna bekijken we hoe je deze en andere zoekopdrachten kunt combineren om nog geavanceerdere zoeklogica te maken!
Leer Elasticsearch en systemen voor zoeken in volledige tekst met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Term- en match-queries” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Elasticsearch en systemen voor zoeken in volledige tekst, waaronder “Term- en match-queries”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Elasticsearch en systemen voor zoeken in volledige tekst bevat in totaal 4 lessen.
Wat leer ik in “Term- en match-queries”?
Leer `term`-queries te gebruiken voor exacte waardevergelijking en `match`-queries voor full-textanalyse en relevantiescores. Je oefent met Elasticsearch en systemen voor zoeken in volledige tekst door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Elasticsearch en systemen voor zoeken in volledige tekst te beginnen?
Ervaring vooraf is niet nodig. Elasticsearch en systemen voor zoeken in volledige tekst op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Term- en match-queries”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Elasticsearch en systemen voor zoeken in volledige tekst?
Ja. Elke les over Elasticsearch en systemen voor zoeken in volledige tekst bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Inleiding tot Query DSL
- Term- en match-queries
- Queries combineren met Bool
- Filtering, bereiken en querycontext