Term- ja match-kyselyt
Oppikaa käyttämään `term`-kyselyitä täsmälliseen arvojen vertailuun ja `match`-kyselyitä kokotekstianalyysiin ja relevanssipisteytykseen.
Term- ja match-kyselyt on ilmainen Elasticsearch ja kokotekstihaun järjestelmät-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Elasticsearch ja kokotekstihaun järjestelmät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Elasticsearch ja kokotekstihaun järjestelmät-kurssilla on yhteensä 4 oppituntia.
Term- ja match-kyselyiden esittely
Tervetuloa Elasticsearchin tietojen kyselyn perusteisiin! Tänään tutustumme kahteen keskeiseen kyselytyyppiin: term ja match.
Niiden erojen ymmärtäminen on tehokkaan haun kannalta ratkaisevan tärkeää. Opitte, milloin kumpaakin kannattaa käyttää, jotta saatte juuri tarvitsemanne tulokset – olipa kyse täsmällisestä arvosta tai joustavasta koko tekstin hausta.
Esimerkkiasiakirjojen indeksointi
Ennen kyselyiden tekemistä indeksoidaan yksinkertaisia asiakirjoja indeksiin nimeltä products. Käytämme näitä esimerkkejä koko oppitunnin ajan.
Suorittakaa nämä curl-komennot päätteessänne (olettaen, että Elasticsearch on käynnissä osoitteessa 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
}'`term`-kysely: täsmällinen vastaavuus
term-kyselyä käytetään kentän täsmällisten arvojen etsimiseen. Se etsii täsmällistä osumaa ilman tekstianalyysiä, kuten pienaakkosiksi muuttamista tai vartalointia.
- Se sopii erinomaisesti jäsenneltyyn dataan, kuten tuotetunnisteisiin, luokkiin, tunnisteisiin ja tilakenttiin.
- Se toimii parhaiten kenttien kanssa, joiden määritykseksi on asetettu
keyword(analysoimattomat merkkijonot), tai numeeristen tyyppien kanssa.
`term`-kysely käytännössä
Etsitään kaikki tuotteet, joiden luokka on täsmälleen ”Electronics”. Huomaatte, että kysely kohdistuu kenttään category.keyword, koska oletusarvoinen text-kenttä analysoitaisiin.
Kokeilkaa tätä curl-komentoa:
curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"term": {
"category.keyword": "Electronics"
}
}
}'`.keyword`-kentän ymmärtäminen
Kun indeksoitte merkkijonokentän, kuten category-kentän, Elasticsearch luo oletusarvoisesti usein kaksi versiota:
category:text-kenttä, joka analysoidaan (jaetaan sanoiksi ja muutetaan pienaakkosiksi).category.keyword:keyword-kenttä, jota käsitellään yhtenä täsmällisenä merkkijonona.
term-kysely odottaa täsmällistä osumaa, joten .keyword-alikentän käyttö varmistaa, ettei kyselymerkkijonoa analysoida ja että se vastaa täsmälleen tallennettua arvoa.
`match`-kysely: koko tekstin haun voima
match-kysely on ensisijainen työkalunne koko tekstin hakuun. Toisin kuin term, se on suunniteltu käsittelemään tekstiä älykkäästi.
- Se analysoi hakukyselyn tekstin.
- Se jakaa kyselymerkkijonon yksittäisiksi termeiksi, muuttaa ne pienaakkosiksi ja joskus vartaloi ne (esimerkiksi ”running” -> ”run”).
- Sen jälkeen se etsii asiakirjat, jotka sisältävät nämä analysoidut termit, ja antaa niille myös relevanssipisteet.
`match`-kysely käytännössä
Etsitään tuotteita, joiden description-kentässä esiintyy "powerful laptop". Vaikka dokumentti sisältäisi tekstin "A powerful and lightweight laptop", match-kysely löytää sen.
Kokeile tätä curl-komentoa:
curl -X GET "localhost:9200/products/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"description": "powerful laptop"
}
}
}'Tekstianalyysin taika
Kun käytät match-kyselyä, Elasticsearchin tekstianalyysiprosessi käynnistyy:
- Tokenisointi: "powerful laptop" muuttuu muotoon "powerful" ja "laptop".
- Pieniksi kirjaimiksi muuttaminen: "Powerful" muuttuu muotoon "powerful".
- Stop-sanat: Yleiset sanat, kuten "a" ja "the", voidaan poistaa analysoijasta riippuen.
Tämän ansiosta match-kyselyt ovat erittäin joustavia luonnollisen kielen haussa: ne löytävät osuvia tuloksia, vaikka sanamuodossa tai kirjainkoossa olisi pieniä eroja.
`term` vs `match`: keskeiset erot
Tässä on lyhyt yhteenveto siitä, milloin kumpaakin kyselytyyppiä kannattaa käyttää:
term-kysely:
- Täsmälliseen arvojen vertailuun.
- Ei suorita kyselymerkkijonolle tekstianalyysiä.
- Sopii parhaitenkeyword-kentille, tunnisteille ja täsmällisiin suodatuksiin.match-kysely:
- Kokotekstihakuun.
- SUORITTAA kyselymerkkijonolle tekstianalyysin.
- Sopii parhaitentext-kentille, hakukenttiin ja kuvailevaan sisältöön.
Kyselyiden ymmärtämisen tarkistus
Mitkä seuraavista väitteistä pitävät paikkansa Elasticsearchin term- ja match-kyselyistä?
Kertaus: `term` ja `match`
Hienoa työtä! Olet oppinut term- ja match-kyselyiden perustavanlaatuisen eron.
termon tarkoitettu täsmällisiin arvohakuihin.matchon tarkoitettu joustavaan kokotekstihakuun, jossa hyödynnetään tehokasta tekstianalyysiä.
Tehokkaiden hakukokemusten rakentamisen kannalta on olennaista tietää, milloin kumpaakin käytetään. Seuraavaksi tutustumme siihen, miten näitä ja muita kyselyitä yhdistetään entistä kehittyneemmän hakulogiikan luomiseksi!
Opi Elasticsearch ja kokotekstihaun järjestelmät tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Term- ja match-kyselyt” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Elasticsearch ja kokotekstihaun järjestelmät-oppimispolun 3 oppituntia, myös oppitunnin “Term- ja match-kyselyt”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Elasticsearch ja kokotekstihaun järjestelmät-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Term- ja match-kyselyt”?
Oppikaa käyttämään `term`-kyselyitä täsmälliseen arvojen vertailuun ja `match`-kyselyitä kokotekstianalyysiin ja relevanssipisteytykseen. Harjoittelet Elasticsearch ja kokotekstihaun järjestelmät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Elasticsearch ja kokotekstihaun järjestelmät-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Elasticsearch ja kokotekstihaun järjestelmät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Term- ja match-kyselyt”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Elasticsearch ja kokotekstihaun järjestelmät-oppitunnilla?
Kyllä. Jokainen Elasticsearch ja kokotekstihaun järjestelmät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Johdatus Query DSL:ään
- Term- ja match-kyselyt
- Kyselyiden yhdistäminen Boolilla
- Suodatus, arvoalueet ja kyselykonteksti