Bu makale , Cosmos DB'ye özgü bilgilerle dizin oluşturucu oluşturma makalesini tamamlar. Rest API'lerini kullanarak tüm dizin oluşturucular için ortak olan üç parçalı bir iş akışını gösterir: veri kaynağı oluşturma, dizin oluşturma, dizin oluşturucu oluşturma. Dizin Oluşturucu Oluştur isteğini gönderdiğinizde veri ayıklama gerçekleşir.
Terminoloji kafa karıştırıcı olabileceği için Azure Cosmos DB dizin oluşturma ve Azure AI Search dizin oluşturma işlemlerinin farklı işlemler olduğunu belirtmek gerekir. Azure AI Search'te dizin oluşturma, arama hizmetinizde bir arama dizini oluşturur ve yükler.
Azure Cosmos DB hesabı, veritabanı, kapsayıcı ve öğeler. Daha düşük gecikme süresi ve bant genişliği ücretlerini önlemek için hem Azure AI Search hem de Azure Cosmos DB için aynı bölgeyi kullanın.
Azure Cosmos DB koleksiyonunda Tutarlı olarak ayarlanmış bir otomatik dizin oluşturma ilkesi. Bu, varsayılan yapılandırmadır. Gecikmeli dizin oluşturma önerilmez ve eksik verilere neden olabilir.
Okuma izinleri. "Tam erişim" bağlantı dizesi içeriğe erişim sağlayan bir anahtar içerir, ancak Azure rolleri kullanıyorsanız arama hizmeti yönetilen kimliğinin Cosmos DB Hesap Okuyucusu Rolü izinlerine sahip olduğundan emin olun.
Veri kaynağı tanımı, verilerdeki değişiklikleri tanımlamak için dizine eklenecek verileri, kimlik bilgilerini ve ilkeleri belirtir. Veri kaynağı, birden çok dizin oluşturucu tarafından kullanılabilmesi için bağımsız bir kaynak olarak tanımlanır.
Bu çağrı için, Apache Gremlin için Azure Cosmos DB aracılığıyla bağlanan bir veri kaynağı oluşturmak üzere bir önizleme REST API sürümü belirtin. 2021-04-01-preview veya üzerini kullanabilirsiniz. En son önizleme API'sini öneririz.
"type" değerini (gerekli) olarak "cosmosdb" ayarlayın.
"Kimlik bilgilerini" bir bağlantı dizesi olarak ayarlayın. Sonraki bölümde desteklenen biçimler açıklanmaktadır.
"kapsayıcı" öğesini koleksiyon olarak ayarlayın. "name" özelliği gereklidir ve grafiğin kimliğini belirtir.
"query" özelliği isteğe bağlıdır. Apache Gremlin için Azure Cosmos DB için Azure AI Search dizin oluşturucusu varsayılan olarak grafiğinizdeki her köşeyi dizindeki bir belge haline getirir. Kenarlar yoksayılır. Sorgu varsayılanıdır g.V(). Alternatif olarak, sorguyu yalnızca kenarları dizine almak için ayarlayabilirsiniz. Kenarları dizine almak için sorguyu olarak g.E()ayarlayın.
Dizin oluşturucular aşağıdaki bağlantıları kullanarak bir koleksiyona bağlanabilir. Apache Gremlin için Azure Cosmos DB'yi hedefleyen bağlantılar için bağlantı dizesi "ApiKind" eklemeyi unutmayın.
Uç nokta URL'sinde bağlantı noktası numaralarından kaçının. Bağlantı noktası numarasını eklerseniz bağlantı başarısız olur.
Tam erişim bağlantı dizesi
{ "connectionString" : "AccountEndpoint=https://<Cosmos DB account name>.documents.azure.com;AccountKey=<Cosmos DB auth key>;Database=<Cosmos DB database id>;ApiKind=MongoDb" }
Sol gezinti bölmesinde Anahtarlar'ı seçerek Azure portalındaki Azure Cosmos DB hesap sayfasından bağlantı dizesi alabilirsiniz. Yalnızca bir anahtar değil tam bir bağlantı dizesi seçtiğinizden emin olun.
Yönetilen kimlik bağlantı dizesi
{ "connectionString" : "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.DocumentDB/databaseAccounts/<your cosmos db account name>/;(ApiKind=[api-kind];)" }
Arama dizininde, kaynak JSON belgelerini veya özel sorgu projeksiyonunuzun çıkışını kabul etmek için alanlar ekleyin. Arama dizini şemasının grafiğinizle uyumlu olduğundan emin olun. Azure Cosmos DB'deki içerik için arama dizini şemanız veri kaynağınızdaki Azure Cosmos DB öğelerine karşılık gelir.
Belge anahtarı alanı oluşturma ("anahtar": true). Bölümlenmiş koleksiyonlar için varsayılan belge anahtarı Azure rid Cosmos DB _rid özelliğidir ve alan adları alt çizgi karakteriyle başlayamaz. Ayrıca Azure Cosmos DB _rid değerleri, Azure AI Arama anahtarlarında geçersiz karakterler içerir. Bu nedenle değerler _rid Base64 ile kodlanmıştır.
Daha fazla aranabilir içerik için ek alanlar oluşturun. Ayrıntılar için bkz . Dizin oluşturma.
Eşleme veri türleri
JSON veri türü
Azure AI Search alan türleri
Boole
Edm.Boolean, Edm.String
Tamsayı gibi görünen sayılar
Edm.Int32, Edm.Int64, Edm.String
Kayan noktalar gibi görünen sayılar
Edm.Double, Edm.String
String
Edm.String
["a", "b", "c"] gibi ilkel tür dizileri
Collection(Edm.String)
Tarih gibi görünen dizeler
Edm.DateTimeOffset, Edm.String
{ "type": "Point", "coordinates": [long, lat] } gibi GeoJSON nesneleri
Edm.GeographyPoint
Diğer JSON nesneleri
Yok
Azure Cosmos DB dizin oluşturucusunu yapılandırma ve çalıştırma
Dizin ve veri kaynağı oluşturulduktan sonra dizin oluşturucuyu oluşturmaya hazır olursunuz. Dizin oluşturucu yapılandırması, çalışma zamanı davranışlarını denetleen girişleri, parametreleri ve özellikleri belirtir.
Diğer özellikler hakkında daha fazla bilgi için bkz . Dizin oluşturucu oluşturma.
Dizin oluşturucu oluşturulduğunda otomatik olarak çalışır. "Devre dışı" ayarını true olarak ayarlayarak bunu önleyebilirsiniz. Dizin oluşturucu yürütmesini denetlemek için isteğe bağlı olarak bir dizin oluşturucu çalıştırın veya zamanlamaya yerleştirin.
Dizin oluşturucu durumunu denetleme
Dizin oluşturucu durumunu ve yürütme geçmişini izlemek için Dizin Oluşturucu Durumunu Al isteği gönderin:
HTTP
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-05-01-preview
Content-Type: application/json
api-key: [admin key]
Yanıt, durumu ve işlenen öğe sayısını içerir. Aşağıdaki örneğe benzer görünmelidir:
Yürütme geçmişi, en son tamamlanan yürütmelerin en son 50'sini içerir ve en son yürütme önce gelecek şekilde ters kronolojik sırada sıralanır.
Yeni ve değiştirilmiş belgelerin dizinini oluşturma
Dizin oluşturucu bir arama dizinini tam olarak doldurduktan sonra, sonraki dizin oluşturucu çalıştırmalarının veritabanınızdaki yalnızca yeni ve değiştirilmiş belgeleri artımlı olarak dizinlemesini isteyebilirsiniz.
Artımlı dizin oluşturmayı etkinleştirmek için veri kaynağı tanımınızda "dataChangeDetectionPolicy" özelliğini ayarlayın. Bu özellik, dizin oluşturucuya verilerinizde hangi değişiklik izleme mekanizmasının kullanıldığını bildirir.
Azure Cosmos DB dizin oluşturucuları için desteklenen tek ilke, Azure Cosmos DB tarafından sağlanan kullanım (zaman damgası) özelliğidir HighWaterMarkChangeDetectionPolicy_ts .
Aşağıdaki örnekte, değişiklik algılama ilkesine sahip bir veri kaynağı tanımı gösterilmektedir:
Grafik verileri silindiğinde, ilgili belgeyi arama dizininden de silmek isteyebilirsiniz. Veri silme algılama ilkesinin amacı, silinen veri öğelerini verimli bir şekilde tanımlamak ve belgenin tamamını dizinden silmektir. Veri silme algılama ilkesi, kısmi belge bilgilerini silmek için tasarlanmamıştır. Şu anda desteklenen tek ilke Soft Delete , veri kaynağı tanımında aşağıdaki gibi belirtilen ilkedir (silme işlemi bir tür bayrakla işaretlenir):
HTTP
"dataDeletionDetectionPolicy"": {
"@odata.type" : "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName" : "the property that specifies whether a document was deleted",
"softDeleteMarkerValue" : "the value that identifies a document as deleted"
}
Aşağıdaki örnek geçici silme ilkesine sahip bir veri kaynağı oluşturur:
Silme algılama ilkesini etkinleştirseniz bile, karmaşık (Edm.ComplexType) alanların dizinden silinmesi desteklenmez. Bu ilke, Gremlin veritabanındaki 'etkin' sütunun tamsayı, dize veya boole türünde olmasını gerektirir.
Grafik verilerini arama dizinindeki alanlarla eşleme
Apache Gremlin için Azure Cosmos DB dizin oluşturucu, birkaç grafik verisini otomatik olarak eşler:
Dizin oluşturucu, varsa dizindeki bir rid alanla eşlenir _rid ve Base64 bunu kodlar.
Dizin oluşturucu, varsa dizindeki bir id alanla eşlenir_id.
Apache Gremlin için Azure Cosmos DB kullanarak Azure Cosmos DB veritabanınızı sorgularken, her özellik için JSON çıkışının bir id ve valueolduğunu fark edebilirsiniz. Dizin oluşturucu, özellikleri value arama dizininizde varsa özelliğiyle aynı ada sahip bir alana otomatik olarak eşler. Aşağıdaki örnekte 450, arama dizinindeki bir pages alana eşlenir.
Sorgu çıkışınızı dizininizdeki alanlarla eşlemek için Çıkış Alanı Eşlemeleri'ni kullanmanız gerektiğini fark edebilirsiniz. Özel sorguda büyük olasılıkla karmaşık veriler olacağından Alan Eşlemeleri yerine Çıkış Alanı Eşlemeleri'ni kullanmak istersiniz.
Örneğin, sorgunuzun şu çıkışı ürettiğini düşünelim:
Yukarıdaki JSON değerini dizininizdeki bir alanla eşlemek pages isterseniz, dizin oluşturucu tanımınıza aşağıdaki Çıkış Alanı Eşlemesi'ni ekleyebilirsiniz:totalpages
Çıkış Alanı Eşlemesi'nin ile başladığına /document ve JSON'daki özellikler anahtarına başvuru içermediğini fark edin. Bunun nedeni, dizin oluşturucunun grafik verilerini alırken her belgeyi düğümün /document altına yerleştirdiği ve dizin oluşturucunun da dizinindeki ilk nesneye başvurmak yerine basit başvuru yaparak pages değerine pages otomatik olarak başvurmanıza olanak sağlamasıdırpages.
Azure AI Search senaryoları ve fiyatlandırma hakkında daha fazla bilgi için azure.microsoft.com Arama hizmeti sayfasına bakın.
Dizin oluşturucuların ağ yapılandırması hakkında bilgi edinmek için bkz . Azure ağ güvenliği özellikleri tarafından korunan içeriğe Dizin Oluşturucu erişimi.