Elasticsearch & Full Text Search Systems · Pelajaran

Kemampuan Pencarian Geospasial

Terapkan pemetaan titik geografis dan bentuk geografis untuk melakukan pencarian berbasis lokasi, kueri kedekatan, dan agregasi geospasial.

Pelajaran 1 dari 412 langkah

Kemampuan Pencarian Geospasial adalah pelajaran Elasticsearch & Full Text Search Systems gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Elasticsearch & Full Text Search Systems, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Elasticsearch & Full Text Search Systems mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Location-Aware Search

Welcome to Geospatial Search! Many modern applications rely on location data, from finding nearby restaurants to tracking delivery vehicles.

Elasticsearch provides powerful features to index, search, and analyze geographic information efficiently.

The `geo_point` Field

The most common way to store a single geographical location in Elasticsearch is using the geo_point data type.

It represents a specific point on Earth using its latitude and longitude coordinates.

  • Latitude: North-South position (e.g., 48.8584)
  • Longitude: East-West position (e.g., 2.2945)

Mapping `geo_point` Data

Before indexing documents with location data, you need to define a geo_point field in your index mapping. This tells Elasticsearch how to interpret the coordinates.

Try setting up an index named places with a location field of type geo_point:

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

Adding Geo-Tagged Documents

Now that our places index is mapped, we can index documents containing geo_point data. The location field can accept an object with lat and lon properties.

Index the Eiffel Tower's location:

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
  }
}'

Searching by Distance: `geo_distance`

One of the most common geospatial queries is finding documents within a certain radius of a central point. This is achieved using the geo_distance query.

You specify a distance and the reference point, and Elasticsearch returns all matching documents.

`geo_distance` Query Example

Let's find all places within 5 kilometers of the Eiffel Tower's coordinates. This query is perfect for 'find restaurants near me' features.

Run this query:

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
      }
    }
  }
}'

Bounding Box Search (`geo_bounding_box`)

Another useful query is geo_bounding_box, which allows you to find all documents whose geo_point falls within a specified rectangular area.

You define the box by providing its top_left and bottom_right coordinates.

`geo_bounding_box` Query Example

Imagine you have a map view and only want to show results within the current screen. A geo_bounding_box query is ideal for this scenario.

Here's an example searching within a small area around Paris:

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
        }
      }
    }
  }
}'

Beyond Points: `geo_shape`

While geo_point is great for single locations, what if you need to represent complex geometries like a park boundary, a river, or a country's outline?

For this, Elasticsearch offers the geo_shape data type, which supports various GeoJSON shapes (polygons, lines, multi-points, etc.).

`geo_shape` Mapping & Indexing

To use geo_shape, you first map the field as geo_shape. Then, you can index documents with complex geometries, typically in GeoJSON format. Here's how to map and index a simple polygon representing a district:

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]
      ]
    ]
  }
}'

Geo Query Challenge

You want to find all restaurants located within the boundaries of a specific park. The park's boundaries are complex and not a simple rectangle.

Geospatial Search Recap

You've explored Elasticsearch's powerful geospatial capabilities!

  • We learned about the geo_point type for single locations (latitude, longitude).
  • We used geo_distance for proximity searches and geo_bounding_box for rectangular area searches.
  • We also introduced the advanced geo_shape type for complex geometries like polygons.

These tools are essential for building sophisticated location-aware applications.

Gratis untuk memulai

Belajar Elasticsearch & Full Text Search Systems dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kemampuan Pencarian Geospasial” gratis?

Ya — teks lengkap “Kemampuan Pencarian Geospasial” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Elasticsearch & Full Text Search Systems, upgrade ke CoddyKit PRO. Kursus Elasticsearch & Full Text Search Systems mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Kemampuan Pencarian Geospasial”?

Terapkan pemetaan titik geografis dan bentuk geografis untuk melakukan pencarian berbasis lokasi, kueri kedekatan, dan agregasi geospasial. Kamu berlatih Elasticsearch & Full Text Search Systems dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Elasticsearch & Full Text Search Systems?

Tidak diperlukan pengalaman sebelumnya. Elasticsearch & Full Text Search Systems di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Kemampuan Pencarian Geospasial” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Elasticsearch & Full Text Search Systems ini?

Ya. Setiap pelajaran Elasticsearch & Full Text Search Systems menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Kemampuan Pencarian Geospasial
  2. Manajemen Data Deret Waktu
  3. Strategi Penerapan Produksi
  4. Manajemen Siklus Hidup Indeks
← Kembali ke Elasticsearch & Full Text Search Systems