Elasticsearch ja kokotekstihaun järjestelmät · Oppitunti

Kenttien kuvausten mukauttaminen

Syventykää eri kenttätyyppien, kuten text-, keyword-, numeeristen, päivämäärä- ja boolean-kenttien, eksplisiittisten kuvausten määrittämiseen.

Oppitunti 1/411 vaihetta

Kenttien kuvausten mukauttaminen on ilmainen Elasticsearch ja kokotekstihaun järjestelmät-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.

Miksi mappauksia mukautetaan?

Elasticsearch on älykäs! Se arvaa usein tietotyyppisi, kun indeksoit asiakirjan (tätä kutsutaan dynaamiseksi mappaukseksi). Joskus tarvitset kuitenkin tarkempaa hallintaa.

Eksplisiittisten mappausten avulla voit määrittää täsmälleen, miten asiakirjojesi kukin kenttä tallennetaan ja indeksoidaan. Tämä on olennaista optimaalisen hakutoiminnan, tehokkaan tallennuksen ja täsmällisten aggregointien kannalta.

Indeksin rakenteen määrittäminen

Mapping toimii indeksin skeeman tavoin. Yleensä määrität sen uutta indeksiä luodessasi. Se sijaitsee indeksin luontipyynnön "mappings"-objektissa.

Tässä on perusrakenne:

PUT /my_new_index
{
  "mappings": {
    "properties": {
      "your_field_name": {
        "type": "field_type_here"
      }
    }
  }
}

"properties"-objekti sisältää kaikkien kenttien määritykset.

<code>text</code>-kenttätyyppi

text-kenttätyyppi on tarkoitettu koko tekstin hakuun. Ajattele blogikirjoituksen sisältöä, tuotekuvauksia tai kommentteja.

Kun indeksoit dataa text-kenttään, Elasticsearch "analysoi" sen:

  • Jakaa sen yksittäisiksi sanoiksi (tokeneiksi).
  • Muuttaa sanat pienaakkosiksi.
  • Poistaa yleiset sanat (stop-sanat), jos näin on määritetty.

Tämä prosessi tekee tekstistä helposti haettavaa, mutta sen vuoksi text-kenttä ei sovellu täsmälliseen vertailuun, suodatukseen tai lajitteluun.

<code>keyword</code>-kenttätyyppi

keyword-kenttätyyppi on tarkoitettu täsmällisille arvoille, jotka säilytetään sellaisinaan ilman analysointia. Käytä sitä, kun tarvitset täsmällistä vertailua, suodatusta tai lajittelua.

Esimerkkejä keyword-kenttiin sopivista tiedoista:

  • Tuotetunnukset (esimerkiksi "PROD-123")
  • Tunnisteet (esimerkiksi "new_arrival")
  • Käyttäjänimet (esimerkiksi "john_doe")
  • Tilakoodit (esimerkiksi "active", "pending")

keyword-kentät ovat erittäin tehokkaita aggregointeihin ja täsmällisiin suodattimiin.

<code>text</code>- ja <code>keyword</code>-esimerkki

Havainnollistetaan eroa. Kuvittele indeksoivasi blogikirjoituksen, jossa on title- ja tag-kentät:

PUT /my_blog_posts
{
  "mappings": {
    "properties": {
      "title": { "type": "text" },
      "tag":   { "type": "keyword" }
    }
  }
}

Haku merkkijonolla "quick brown" kentästä title löytäisi tekstin "The quick brown fox". Haku merkkijonolla "quick brown" kentästä tag tuottaisi osuman vain, jos tunniste olisi *täsmälleen* "quick brown".

Numeeriset kenttätyypit

Elasticsearch tarjoaa useita numeerisia tyyppejä kokonaislukujen ja desimaalilukujen tehokkaaseen tallentamiseen. Oikean tyypin valitseminen säästää tilaa ja optimoi kyselyjen suorituskykyä.

  • Kokonaisluvut: long, integer, short, byte. Käytä ikään tyyppiä integer ja suurille tunnisteille tyyppiä long.
  • Desimaaliluvut: double, float, half_float, scaled_float. Käytä hintoihin tai mittaustuloksiin tyyppiä float tai double.

Esimerkiksi "age": { "type": "integer" }.

Päivämääräkentän tyyppi

date-kenttätyyppiä käytetään päivämäärien ja kellonaikojen tallentamiseen. Elasticsearch tukee oletusarvoisesti useita vakiomuotoisia päivämäärämuotoja, kuten ISO 8601:tä.

Voit myös määrittää mukautetun format-muodon, jos päivämääräsi noudattavat tiettyä rakennetta:

"publish_date": {
  "type": "date",
  "format": "yyyy/MM/dd HH:mm:ss||yyyy/MM/dd"
}

Päivämäärät tallennetaan sisäisesti millisekunteina epookista, mikä mahdollistaa tehokkaat välikyselyt ja lajittelun.

Totuusarvokentän tyyppi

boolean-kenttätyyppi on yksinkertainen ja tehokas tapa tallentaa arvoja true tai false. Se sopii erinomaisesti binaarisiin lippuihin tai tilan ilmaisimiin.

Voit esimerkiksi ilmaista, onko tuote parhaillaan saatavilla:

"is_available": {
  "type": "boolean"
}

Elasticsearch hyväksyy totuusarvoille useita esitysmuotoja, kuten "true", "false", "T", "F", "on", "off", "yes", "no", "1" ja "0".

Kattava mukautettu mapping-esimerkki

Kootaan oppimamme asiat ja luodaan kattava mapping tyypillisen verkkokaupan tuoteindeksille:

PUT /products_catalog
{
  "mappings": {
    "properties": {
      "product_id":     { "type": "keyword" },
      "name":           { "type": "text" },
      "description":    { "type": "text" },
      "price":          { "type": "float" },
      "stock_quantity": { "type": "integer" },
      "category":       { "type": "keyword" },
      "release_date":   { "type": "date", "format": "yyyy-MM-dd" },
      "is_featured":    { "type": "boolean" }
    }
  }
}

Mapping-tietovisa

Kenttään nimeltä "order_id" tallennetaan yksilöllisiä tapahtumatunnisteita, kuten "TXN-2023-007". Tilauksia on voitava suodattaa ja lajitella täsmällisesti tämän tunnisteen perusteella. Mikä kenttätyyppi on sopivin?

Kertaus: mukautetut mappaukset

Hienoa työtä! Olette perehtyneet perusteellisesti kenttien mappausten eksplisiittiseen määrittämiseen Elasticsearchissa.

Käsittelimme seuraavat aiheet:

  • Miksi mukautetut mappaukset ovat välttämättömiä tarkan hallinnan kannalta.
  • Indeksimappausten määrittämisen perusrakenne.
  • Tärkeimmät kenttätyypit: text, keyword, numeric, date ja boolean.
  • Miten valitaan oikea tyyppi tietojen erityistarpeiden perusteella.

Mappausten mukauttaminen on perustaito tehokkaiden ja suorituskykyisten hakusovellusten rakentamisessa!

Aloita maksutta

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 ”Kenttien kuvausten mukauttaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Elasticsearch ja kokotekstihaun järjestelmät-oppimispolun 3 oppituntia, myös oppitunnin “Kenttien kuvausten mukauttaminen”. 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 ”Kenttien kuvausten mukauttaminen”?

Syventykää eri kenttätyyppien, kuten text-, keyword-, numeeristen, päivämäärä- ja boolean-kenttien, eksplisiittisten kuvausten määrittämiseen. 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 1/4.

Kuinka kauan ”Kenttien kuvausten mukauttaminen”-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

  1. Kenttien kuvausten mukauttaminen
  2. Dynaamiset ja eksplisiittiset kuvaukset
  3. Indeksimallit ja aliakset
  4. Nested- ja object-kenttätyypit
← Takaisin: Elasticsearch ja kokotekstihaun järjestelmät