Elasticsearch Öncelikle sunucunuza yüklemeniz veya Elasticsearch Elastic Cloud gibi bulut tabanlı bir hizmet kullanmanız gerekiyor. Elasticsearch GeoPoint eklentisi ile uyumlu bir sürümünü kurduğunuzdan emin olun .
GeoPoint Eklentisini Kurun ve Yapılandırın
Elasticsearch GeoPoint eklentisi aracılığıyla coğrafi konum aramayı destekler. Bu eklentiyi yüklemek için eklenti yönetim aracını kullanabilirsiniz Elasticsearch.
Örneğin, 7.x sürümünü kullanıyorsanız Elasticsearch, GeoPoint eklentisini yüklemek için aşağıdaki komutu çalıştırabilirsiniz:
bin/elasticsearch-plugin install ingest-geoip
GeoPoint eklentisini yükledikten sonra, dizininizi coğrafi konum bilgilerini tutacak alan için "geo_point" veri türünü kullanacak şekilde yapılandırmanız gerekir. Bunu yapmak için, mevcut bir dizinin eşlemesini düzenleyebilir veya yapılandırılmış eşlemeyle yeni bir dizin oluşturabilirsiniz.
Haritalamada Coğrafi Konum Alanını Tanımlayın
Coğrafi konum alanını dizininize ekleyin ve o alan için eşlemeyi düzenleyin. Coğrafi konum alanı genellikle "geo_point" veri türünü kullanır. Eşleme, coğrafi konum alanı için koordinatların kesinliği, format ve daha fazlası gibi nitelikleri ve seçenekleri tanımlayacaktır.
Örnek:
PUT /my_locations_index
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
Verileri Düzenle
Belgelerinize coğrafi konum bilgisi ekleyin. Tipik olarak, coğrafi konum bilgisi bir çift longitude
ve latitude
koordinat olarak temsil edilir. Bu bilgileri, veya diğer coğrafi konum veri kaynaklarını kullanan kullanıcılardan elde edebilirsiniz Google Maps API.
Örnek:
PUT /my_locations_index/_doc/1
{
"name": "Ba Dinh Square",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
Coğrafi Konum Araması Gerçekleştirin
Artık dizininizde coğrafi konum verileriniz olduğuna göre Elasticsearch, belirli bir konumun yakınındaki veya belirli bir coğrafi aralık içindeki belgeleri bulmak için coğrafi konum arama sorguları gerçekleştirebilirsiniz. Elasticsearch Bir coğrafi konum araması yapmak için, geo_distance, geo_bounding_box, geo_polygon, vb. gibi karşılık gelen sorguları kullanabilirsiniz.
Örnek: 5 km'lik bir yarıçap içinde(21.03405, 105.81507) koordinatlarına yakın yerleri bulun.
GET /my_locations_index/_search
{
"query": {
"geo_distance": {
"distance": "5km",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
}
}
Birleştirmek Google Maps
Google Maps Kullanıcılardan coğrafi konum bilgisi almak için ile entegrasyon yapmak istiyorsanız, bir adrese veya kullanıcılar tarafından seçilen bir konuma göre boylam ve enlem koordinatlarını almak için Elasticsearch kullanabilirsiniz. Google Maps API Ardından, dizininize coğrafi konum verileri eklemek ve coğrafi konum arama sorguları gerçekleştirmek için bu bilgileri kullanabilirsiniz Elasticsearch.
Sonuç olarak, Google Maps ile entegrasyon, Elasticsearch verilerinizdeki coğrafi konum arama özelliklerinden yararlanmanıza olanak tanıyarak coğrafi konum bilgilerine dayalı olarak doğru ve verimli arama yapmanızı sağlar.