Paikkatietohakujen ominaisuudet
Toteuta geo-point- ja geo-shape-kenttämääritykset sijaintiin perustuvia hakuja, läheisyyshakuja ja paikkatietoaggregointeja varten.
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 jageo_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.
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
- Paikkatietohakujen ominaisuudet
- Aikasarjatietojen hallinta
- Tuotantoonviennin strategiat
- Indeksien elinkaaren hallinta