Elasticsearch ja kokotekstihaun järjestelmät · Oppitunti

Paikkatietohakujen ominaisuudet

Toteuta geo-point- ja geo-shape-kenttämääritykset sijaintiin perustuvia hakuja, läheisyyshakuja ja paikkatietoaggregointeja varten.

Oppitunti 1/412 vaihetta

Paikkatietohakujen ominaisuudet 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.

Sijaintitietoinen haku

Tervetuloa paikkatietohakuun! Monet nykyaikaiset sovellukset hyödyntävät sijaintitietoja läheisten ravintoloiden etsimisestä jakeluajoneuvojen seurantaan.

Elasticsearch tarjoaa tehokkaat ominaisuudet maantieteellisten tietojen tehokkaaseen indeksointiin, hakuun ja analysointiin.

`geo_point`-kenttä

Yleisin tapa tallentaa yksittäinen maantieteellinen sijainti Elasticsearchissa on käyttää geo_point-tietotyyppiä.

Se esittää tietyn pisteen maapallolla leveys- ja pituuskoordinaattien avulla.

  • Leveysaste: Pohjois-eteläsuuntainen sijainti (esim. 48.8584)
  • Pituusaste: Itä-länsisuuntainen sijainti (esim. 2.2945)

`geo_point`-tietojen mappaus

Ennen kuin indeksoit sijaintitietoja sisältäviä dokumentteja, sinun on määritettävä geo_point-kenttä indeksin mappaukseen. Näin Elasticsearch tietää, miten koordinaatit tulkitaan.

Kokeile määrittää indeksi nimeltä places, jonka location-kentän tyyppi on geo_point:

curl -X PUT "localhost:9200/places?pretty" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
      "location": {
        "type": "geo_point"
      },
      "name": {
        "type": "text"
      }
    }
  }
}'

Paikkatiedoilla varustettujen dokumenttien lisääminen

Nyt kun places-indeksi on mapattu, voimme indeksoida geo_point-tietoja sisältäviä dokumentteja. location-kenttä voi sisältää objektin, jolla on lat- ja lon-ominaisuudet.

Indeksoi Eiffel-tornin sijainti:

curl -X PUT "localhost:9200/places/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Eiffel Tower",
  "location": {
    "lat": 48.8584,
    "lon": 2.2945
  }
}'

Haku etäisyyden perusteella: `geo_distance`

Yksi yleisimmistä paikkatietokyselyistä on etsiä dokumentteja tietyn säteen sisältä keskipisteen ympäriltä. Tämä tehdään geo_distance-kyselyllä.

Määrität etäisyyden ja vertailupisteen, minkä jälkeen Elasticsearch palauttaa kaikki ehdot täyttävät dokumentit.

`geo_distance`-kyselyesimerkki

Etsitään kaikki paikat 5 kilometrin säteellä Eiffel-tornin koordinaateista. Tämä kysely sopii erinomaisesti "etsi ravintoloita läheltäni" -toimintoihin.

Suorita tämä kysely:

curl -X GET "localhost:9200/places/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "geo_distance": {
      "distance": "5km",
      "location": {
        "lat": 48.8584,
        "lon": 2.2945
      }
    }
  }
}'

Rajauslaatikon haku (`geo_bounding_box`)

Toinen hyödyllinen kysely on geo_bounding_box, jonka avulla voit etsiä kaikki dokumentit, joiden geo_point sijaitsee määritetyn suorakulmion sisällä.

Määrität laatikon antamalla sen top_left- ja bottom_right-koordinaatit.

`geo_bounding_box`-kyselyesimerkki

Kuvittele, että sinulla on karttanäkymä ja haluat näyttää tuloksia vain nykyisen näytön alueelta. geo_bounding_box -kysely sopii tähän tilanteeseen erinomaisesti.

Tässä on esimerkki hausta pieneltä Pariisin ympärillä olevalta alueelta:

curl -X GET "localhost:9200/places/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "geo_bounding_box": {
      "location": {
        "top_left": {
          "lat": 49,
          "lon": 2
        },
        "bottom_right": {
          "lat": 48,
          "lon": 3
        }
      }
    }
  }
}'

Pisteitä pidemmälle: `geo_shape`

geo_point sopii hyvin yksittäisiin sijainteihin, mutta entä jos haluat esittää monimutkaisia geometrioita, kuten puiston rajan, joen tai valtion ääriviivat?

Tätä varten Elasticsearch tarjoaa geo_shape-tietotyypin, joka tukee erilaisia GeoJSON-muotoja (polygoneja, viivoja, monipisteitä ja niin edelleen).

`geo_shape`-mappaus ja indeksointi

Käyttääksesi geo_shape-tyyppiä mappaa kenttä ensin tyypiksi geo_shape. Sen jälkeen voit indeksoida monimutkaisia geometrioita sisältäviä dokumentteja, yleensä GeoJSON-muodossa. Näin mapataan ja indeksoidaan kaupunginosaa esittävä yksinkertainen polygoni:

curl -X PUT "localhost:9200/regions?pretty" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
      "area": {
        "type": "geo_shape"
      },
      "name": {
        "type": "keyword"
      }
    }
  }
}'

curl -X PUT "localhost:9200/regions/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Paris District",
  "area": {
    "type": "polygon",
    "coordinates": [
      [
        [2.2, 48.8],
        [2.3, 48.8],
        [2.3, 48.9],
        [2.2, 48.9],
        [2.2, 48.8]
      ]
    ]
  }
}'

Paikkatietokyselyhaaste

Haluat löytää kaikki tietyn puiston rajojen sisällä sijaitsevat ravintolat. Puiston rajat ovat monimutkaiset eivätkä muodosta yksinkertaista suorakulmiota.

Paikkatietohaun kertaus

Olet tutustunut Elasticsearchin tehokkaisiin paikkatieto-ominaisuuksiin!

  • Opimme geo_point-tyypin käytön yksittäisiin sijainteihin (leveysaste, pituusaste).
  • Käytimme geo_distance-tyyppiä lähihakuihin ja geo_bounding_box -tyyppiä suorakulmaisten alueiden hakuihin.
  • Tutustuimme myös kehittyneeseen geo_shape-tyyppiin monimutkaisia geometrioita, kuten polygoneja, varten.

Nämä työkalut ovat olennaisia kehittyneiden sijaintitietoisia ominaisuuksia hyödyntävien sovellusten 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 ”Paikkatietohakujen ominaisuudet” ilmainen?

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

Toteuta geo-point- ja geo-shape-kenttämääritykset sijaintiin perustuvia hakuja, läheisyyshakuja ja paikkatietoaggregointeja varten. 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 ”Paikkatietohakujen ominaisuudet”-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. Paikkatietohakujen ominaisuudet
  2. Aikasarjatietojen hallinta
  3. Tuotantoonviennin strategiat
  4. Indeksien elinkaaren hallinta
← Takaisin: Elasticsearch ja kokotekstihaun järjestelmät