Vektör tabanlı veritabanları, coğrafi konum verilerini ve diğer yüksek boyutlu verileri etkili bir şekilde işlemek için kullanılır. Bu tür veritabanları, genellikle hızlı arama ve yakınlık sorguları için optimize edilmiştir. Örnek olarak, Faiss ve Milvus gibi vektör tabanlı veritabanları kullanılabilir.
Aşağıda, Milvus kullanarak bir geolokasyona ait konuma göre yakınlarda bulunan işletmeleri listeleyen temel bir yapı örneği sunuyorum:
- Milvus'u kurun ve çalıştırın.
- Python istemcisiyle Milvus'a bağlanın.
- İşletme verilerini ve konum bilgilerini ekleyin.
- Geolokasyon sorgusu yaparak yakın işletmeleri listeleyin.
Milvus'u Docker kullanarak çalıştırabilirsiniz:
docker pull milvusdb/milvus:v2.0.0
docker run -d --name milvus-standalone -p 19530:19530 milvusdb/milvus:v2.0.0from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection
# Milvus'a bağlan
connections.connect(host='localhost', port='19530')
# Koleksiyon şeması tanımla
fields = [
FieldSchema(name="business_id", dtype=DataType.INT64, is_primary=True),
FieldSchema(name="location", dtype=DataType.FLOAT_VECTOR, dim=2) # 2 boyutlu vektör (lat, lon)
]
schema = CollectionSchema(fields, "Business locations")
# Koleksiyon oluştur
collection = Collection(name="businesses", schema=schema)import random
# İşletme verileri ekle
data = [
[i for i in range(100)], # İşletme kimlikleri
[[random.uniform(-90, 90), random.uniform(-180, 180)] for _ in range(100)] # Rastgele konumlar
]
collection.insert(data)# Arama işlemi
query_location = [40.7128, -74.0060] # Örneğin, New York City koordinatları
search_params = {
"metric_type": "L2",
"params": {"nprobe": 10}
}
results = collection.search([query_location], "location", search_params, limit=10)
# Sonuçları yazdır
for result in results:
print(f"Business ID: {result.id}, Distance: {result.distance}")Bu kod, Milvus kullanarak bir koleksiyon oluşturur, işletme verilerini ekler ve belirli bir konuma göre en yakın işletmeleri arar. Bu örnekte, işletmelerin konum bilgileri rastgele oluşturulmuştur. Gerçek bir uygulamada, bu verileri bir veri kaynağından alabilirsiniz.
Milvus ve diğer vektör tabanlı veritabanları hakkında daha fazla bilgi için resmi dokümantasyonlarına başvurabilirsiniz:
Bu örnek, temel bir başlangıç noktasıdır ve ihtiyaçlarınıza göre özelleştirilebilir.