SQL veya mongodb apı 'lerini kullanarak Azure Cosmos DB veri dizini oluşturun
Önemli
SQL API genel olarak kullanılabilir. MongoDB API desteği şu anda ek kullanım koşullarıkapsamında genel önizlemededir. Erişim isteyinve erişim etkinleştirildikten sonra verilerinize erişmek için bir önizleme REST API (2020-06-30-Preview veya üzeri) kullanın. Şu anda sınırlı sayıda portal desteği var ve .NET SDK desteği yok.
bu makalede, içerik ayıklamak ve Azure Bilişsel Arama 'de aranabilir hale getirmek için bir Azure Cosmos DB dizin oluşturucunun nasıl yapılandırılacağı gösterilmektedir. bu iş akışı bir Azure Bilişsel Arama dizini oluşturur ve Azure Cosmos DB ayıklanan varolan metinle yükler.
terminoloji kafa karıştırıcı olabileceğinden, Azure Cosmos DB dizin oluşturma ve Azure Bilişsel Arama dizin oluşturma 'nın her bir hizmete özgü ayrı işlemler olduğunu belirten bir değer vardır. Azure Bilişsel Arama dizin oluşturmaya başlamadan önce Azure Cosmos DB veritabanınız zaten var olmalı ve veri içermeli.
Azure Bilişsel Arama 'deki Cosmos DB dizin oluşturucu, aşağıdaki protokollerle erişilen Azure Cosmos DB öğelerine gezinebilirler.
genel olarak kullanılabilen SQL apı 'siiçin, veri kaynağını ve dizin oluşturucuyu oluşturmak üzere portal, REST API, .net sdkveya başka bir Azure sdk 'yı kullanabilirsiniz.
MongoDB API 'si (Önizleme)için, veri kaynağını ve Dizin oluşturucuyu oluşturmak üzere portalı veya REST API sürüm 2020-06-30-önizleme ' yi kullanabilirsiniz.
Önkoşullar
yalnızca bir dizin oluşturma ilkesinin tutarlı olarak ayarlandığı Cosmos DB koleksiyonları Azure Bilişsel Arama tarafından desteklenir. Yavaş dizin oluşturma ilkesiyle dizin oluşturma işlemi önerilmez ve eksik verilere neden olabilir. Dizin oluşturma devre dışı olan koleksiyonlar desteklenmez.
Portalı kullanma
Not
portal şu anda SQL apı ve mongodb apı 'sini (önizleme) desteklemektedir.
Azure Cosmos DB öğelerinin dizinlenmesini sağlamak için en kolay yöntem, Azure portalbir sihirbaz kullanmaktır. Azure bilişsel arama verileri örnekleyerek ve meta verileri okuyarak, varsayılan bir dizin oluşturabilir, kaynak alanları hedef dizin alanlarıyla eşleyebilir ve dizini tek bir işlemde yükleyebilir. Kaynak verilerin boyutuna ve karmaşıklığına bağlı olarak, dakikalar içinde işlemsel bir tam metin arama dizinine sahip olabilirsiniz.
Azure Bilişsel Arama için aynı bölge veya konumun kullanılması ve daha düşük gecikme süresi için Azure Cosmos DB ve bant genişliği ücretlerinden kaçınmak için önerilir.
1. adım-kaynak verileri hazırlama
Cosmos DB bir hesabınız, SQL apı 'si veya mongodb apı 'sine (önizleme) eşlenmiş bir Azure Cosmos DB veritabanı ve veritabanındaki içerikler olmalıdır.
Cosmos DB veritabanınızın veri içerdiğinden emin olun. veri alma sihirbazı meta verileri okur ve bir dizin şemasını çıkarması için veri örnekleme gerçekleştirir, ancak ayrıca Cosmos DB verileri yükler. Veriler eksikse, sihirbaz bu hatayla biter "veri kaynağından Dizin şeması tespit etme hatası: DataSource ' emptycollection ' hiçbir veri döndürdüğünden bir prototip dizini derlenemedi.
2. adım-veri alma Sihirbazı 'nı başlatma
sihirbazı azure Bilişsel Arama hizmeti sayfasında komut çubuğundan başlatabilir veya Cosmos DB SQL apı 'sine bağlanıyorsanız, Ayarlar hesabınızın sol gezinti bölmesindeki Cosmos DB bölümünde Azure Bilişsel Arama ekle ' ye tıklayabilirsiniz.
3. adım-veri kaynağını ayarlama
veri kaynağı sayfasında, kaynak Cosmos DB, aşağıdaki belirtimlerle birlikte olmalıdır:
Ad , veri kaynağı nesnesinin adıdır. Oluşturulduktan sonra diğer iş yükleri için bunu seçebilirsiniz.
Cosmos DB hesap aşağıdaki biçimlerden birinde olmalıdır:
- Cosmos DB 'den birincil veya ikincil bağlantı dizesi şu biçimde:
AccountEndpoint=https://<Cosmos DB account name>.documents.azure.com;AccountKey=<Cosmos DB auth key>;.- sürüm 3,2 ve sürüm 3,6 mongodb koleksiyonları için Azure portal Cosmos DB hesabı için aşağıdaki biçimi kullanın:
AccountEndpoint=https://<Cosmos DB account name>.documents.azure.com;AccountKey=<Cosmos DB auth key>;ApiKind=MongoDb
- sürüm 3,2 ve sürüm 3,6 mongodb koleksiyonları için Azure portal Cosmos DB hesabı için aşağıdaki biçimi kullanın:
- Şu biçimdeki bir hesap anahtarı içermeyen bir yönetilen kimlik bağlantı dizesi:
ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.DocumentDB/databaseAccounts/<your cosmos db account name>/;(ApiKind=[api-kind];). bu bağlantı dizesi biçimini kullanmak için, yönetilen kimlik kullanarak bir Cosmos DB veritabanına dizin oluşturucu bağlantısı ayarlamayayönelik yönergeleri izleyin.
- Cosmos DB 'den birincil veya ikincil bağlantı dizesi şu biçimde:
Veritabanı , hesaptaki mevcut bir veritabanıdır.
Koleksiyon bir belge kapsayıcısıdır. Almanın başarılı olması için belgeler mevcut olmalıdır.
Tüm belgeleri istiyorsanız sorgu boş olabilir, aksi takdirde bir belge alt kümesi seçen bir sorgu girebilirsiniz. sorgu yalnızca SQL apı 'si için kullanılabilir.

4. adım-sihirbazdaki "zenginleştirme içerik" sayfasını atlayın
Bilişsel yetenekler (veya zenginleştirme) eklemek bir içeri aktarma gereksinimi değildir. Dizin oluşturma işlem hattınızda AI zenginleştirme eklemek için özel bir ihtiyacınız yoksa, bu adımı atlayabilirsiniz.
Adımı atlamak için, "Ileri" ve "atla" için sayfanın altındaki mavi düğmelere tıklayın.
5. adım-Dizin özniteliklerini ayarlama
Dizin sayfasında, bir veri türü ve Dizin özniteliklerini ayarlamaya yönelik bir dizi onay kutusu içeren alanların listesini görmeniz gerekir. Sihirbaz meta verileri temel alan ve kaynak verileri örnekleyerek bir alanlar listesi oluşturabilir.
Öznitelik sütununun en üstündeki onay kutusuna tıklayarak öznitelikleri toplu olarak seçebilirsiniz. Bir istemci uygulamasına döndürülmesi gereken her alan için alınabilir ve aranabilir ' i seçin ve tam metin arama işlemesine tabidir. Tamsayıların tam metin veya benzer aranabilir olduğunu fark edeceksiniz (sayılar tam olarak değerlendirilir ve genellikle filtrelerdeki yararlı olur).
Daha fazla bilgi için dizin özniteliklerinin ve dil çözümleyicilerinin açıklamasını gözden geçirin.
Seçimlerinizi gözden geçirmek için bir dakikanızı ayırın. Sihirbazı çalıştırdığınızda fiziksel veri yapıları oluşturulur ve tüm nesneleri bırakıp yeniden oluşturmadan bu alanları düzenleyemezsiniz.

6. adım-Dizin Oluşturucu oluşturma
Tam olarak belirtilen sihirbaz, arama hizmetinizde üç ayrı nesne oluşturur. Veri kaynağı nesnesi ve dizin nesnesi, Azure Bilişsel Arama hizmetinize adlandırılmış kaynaklar olarak kaydedilir. Son adım bir Dizin Oluşturucu nesnesi oluşturur. Dizin oluşturucunun adlandırılması, aynı sihirbaz dizisinde oluşturulan dizin ve veri kaynağı nesnesinden bağımsız olarak zamanlayabilir ve yönetebileceğiniz tek başına bir kaynak olarak var olmasına izin verir.
Dizin oluşturucular hakkında bilginiz yoksa, Dizin Oluşturucu , aranabilir içerik için bir dış veri kaynağında gezinir ve Azure bilişsel arama bir kaynaktır. veri alma sihirbazı 'nın çıktısı, Cosmos DB veri kaynağınıza gezinir, aranabilir içeriği ayıklar ve Azure Bilişsel Arama bir dizine içeri aktarır.
Aşağıdaki ekran görüntüsünde varsayılan dizin oluşturucu yapılandırması gösterilmektedir. Dizin Oluşturucuyu bir kez çalıştırmak istiyorsanız bir kez geçiş yapabilirsiniz. Sihirbazı çalıştırmak ve tüm nesneleri oluşturmak için Gönder ' e tıklayın. Dizin oluşturma anında yapılır.

Veri içeri aktarmayı Portal sayfalarında izleyebilirsiniz. İlerleme durumu bildirimleri dizin oluşturma durumunu ve kaç belge yüklendiğini gösterir.
Dizin oluşturma işlemi tamamlandığında, dizini sorgulamak için Arama Gezgini ' ni kullanabilirsiniz.
Not
Bekleyen verileri görmüyorsanız, daha fazla alan için daha fazla öznitelik ayarlamanız gerekebilir. Yeni oluşturduğunuz dizin ve Dizin oluşturucuyu silin ve sihirbazda adım adım 5 ' teki dizin öznitelikleri için seçimlerinizi değiştirerek yeniden ilerleyin.
REST API'lerini kullanma
Azure Bilişsel Arama 'deki tüm dizin oluşturucular için ortak olan üç bölümlü bir iş akışından sonra Azure Cosmos DB verileri indekslemek için REST API kullanabilirsiniz: veri kaynağı oluşturma, dizin oluşturma, dizin oluşturucu oluşturma. aşağıdaki işlemde, Create ındexer isteği gönderdiğinizde Cosmos DB 'den veri ayıklama başlar.
bu makalenin önceki kısımlarında Azure Cosmos DB dizin oluşturma ve Azure Bilişsel Arama dizin oluşturma dizin oluşturma işleminin farklı işlemleri olduğu belirtiliyor. Cosmos DB dizin oluşturma için varsayılan olarak tüm belgeler otomatik olarak dizinlenir. Otomatik Dizin oluşturmayı kapatırsanız, belgelere yalnızca kendi bağlantıları aracılığıyla veya belge KIMLIĞI kullanılarak sorgulara erişilebilir. azure Bilişsel Arama dizin oluşturma, azure Bilişsel Arama tarafından dizin oluşturulacak koleksiyonda otomatik dizin oluşturma işleminin açık Cosmos DB olmasını gerektirir.
Uyarı
Azure Cosmos DB, DocumentDB 'nin yeni nesli. Daha önce API sürüm 2017-11-11 ile documentdb söz dizimini kullanabilirsiniz. Bu, veri kaynağı türünü veya olarak belirtebileceğiniz anlamına gelir cosmosdb documentdb . API sürüm 2019-05-06 ' den başlayarak hem Azure bilişsel arama API 'leri hem de portalı cosmosdb Bu makalede belirtildiği gibi söz dizimini destekler. bu, veri kaynağı türünün cosmosdb bir Cosmos DB uç noktasına bağlanmak istediğinizde olması gerektiği anlamına gelir.
1. adım-istek için girişleri birleştirin
Her istek için, Azure Bilişsel Arama için hizmet adı ve yönetici anahtarı (posta üst bilgisinde) ve BLOB depolama için depolama hesabı adı ve anahtarı sağlamalısınız. HTTP isteklerini Azure Bilişsel Arama göndermek için postman veya Visual Studio Code kullanabilirsiniz.
İsteğinizle birlikte kullanmak için aşağıdaki üç değeri kopyalayın:
- Azure Bilişsel Arama hizmet adı
- Azure Bilişsel Arama yönetici anahtarı
- Cosmos DB bağlantı dizesi
Bu değerleri portalda bulabilirsiniz:
Azure Bilişsel Arama Portal sayfalarında, genel bakış sayfasından arama hizmeti URL 'sini kopyalayın.
Sol gezinti bölmesinde Anahtarlar'a tıklayın ve ardından birincil veya ikincil anahtarı kopyalayın.
Depolama hesabınız için portal sayfalarına Cosmos olun. Sol gezinti bölmesinde, bölmenin altında Ayarlar tuşlarına tıklayın. Bu sayfa bir URI, iki bağlantı dizesi kümesi ve iki anahtar kümesi sağlar. Bağlantı dizelerinden birini kopyalayıp Not Defteri.
2. Adım - Veri kaynağı oluşturma
Veri kaynağı, verilerde yapılan değişiklikleri tanımlamaya yönelik dizine eklenecek verileri, kimlik bilgilerini ve ilkeleri belirtir (örneğin, koleksiyonun içindeki değiştirilmiş veya silinmiş belgeler). Veri kaynağı bağımsız bir kaynak olarak tanımlanır, böylece birden çok dizinici tarafından kullanılabilir.
Veri kaynağı oluşturmak için bir POST isteği oluşturun:
POST https://[service name].search.windows.net/datasources?api-version=2020-06-30
Content-Type: application/json
api-key: [Search service admin key]
{
"name": "mycosmosdbdatasource",
"type": "cosmosdb",
"credentials": {
"connectionString": "AccountEndpoint=https://myCosmosDbEndpoint.documents.azure.com;AccountKey=myCosmosDbAuthKey;Database=myCosmosDbDatabaseId"
},
"container": { "name": "myCollection", "query": null },
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "_ts"
}
}
İsteğin gövdesi, aşağıdaki alanları içermesi gereken veri kaynağı tanımını içerir:
| Alan | Açıklama |
|---|---|
| Adı | Gereklidir. Veri kaynağı nesnenizi temsil edecek herhangi bir ad seçin. |
| Türü | Gereklidir. olması cosmosdb gerekir. |
| Kimlik bilgi -leri | Gereklidir. Veritabanı bağlantı Cosmos olmalıdır. Koleksiyonlar SQL için bağlantı dizeleri şu biçimdedir: AccountEndpoint=https://<Cosmos DB account name>.documents.azure.com;AccountKey=<Cosmos DB auth key>;Database=<Cosmos DB database id>Sürüm 3.2 ve sürüm 3.6 MongoDB koleksiyonları için bağlantı dizesi için aşağıdaki biçimi kullanın: AccountEndpoint=https://<Cosmos DB account name>.documents.azure.com;AccountKey=<Cosmos DB auth key>;Database=<Cosmos DB database id>;ApiKind=MongoDbUç nokta URL'sinde bağlantı noktası numarasından kaçının. Bağlantı noktası numarasını dahil Azure Bilişsel Arama veritabanınız Azure Cosmos veritabanınızı dizine alamayamaz. |
| Kapsayıcı | Aşağıdaki öğeleri içerir: name: Gerekli. Dizine dizinini oluşturmak için veritabanı koleksiyonunun kimliğini belirtin. query: İsteğe bağlı. Rastgele bir JSON belgesini dizine alamadan düz bir şemaya düz Azure Bilişsel Arama belirtebilirsiniz. MongoDB API'si için sorgular desteklenmiyor. |
| dataChangeDetectionPolicy | Önerilen. Değiştirilen Belgelerin Dizinini Oluşturma bölümüne bakın. |
| dataDeletionDetectionPolicy | İsteğe bağlı. Silinen Belgelerin Dizinini Oluşturma bölümüne bakın. |
Dizine verileri şekillendirmek için sorguları kullanma
İç içe özellikleri veya SQL, proje JSON özelliklerini düz bir şekilde belirlemek ve dizine veri filtrelemek için bir sorgu belirtebilirsiniz.
Uyarı
MongoDB API'si için özel sorgular desteklenmiyor: parametresi null olarak ayarlanmış veya container.query atlanmış olmalıdır.
Örnek belge:
{
"userId": 10001,
"contact": {
"firstName": "andy",
"lastName": "hoh"
},
"company": "microsoft",
"tags": ["azure", "cosmosdb", "search"]
}
Filtre sorgusu:
SELECT * FROM c WHERE c.company = "microsoft" and c._ts >= @HighWaterMark ORDER BY c._ts
Sorguyu düzlük oluşturma:
SELECT c.id, c.userId, c.contact.firstName, c.contact.lastName, c.company, c._ts FROM c WHERE c._ts >= @HighWaterMark ORDER BY c._ts
Projeksiyon sorgusu:
SELECT VALUE { "id":c.id, "Name":c.contact.firstName, "Company":c.company, "_ts":c._ts } FROM c WHERE c._ts >= @HighWaterMark ORDER BY c._ts
Dizi düzlük sorgusu:
SELECT c.id, c.userId, tag, c._ts FROM c JOIN tag IN c.tags WHERE c._ts >= @HighWaterMark ORDER BY c._ts
DISTINCT ve GROUP BY
DISTINCT anahtar sözcüğünü veya GROUP BY yan tümcesini kullanan sorgular desteklenmiyor. Azure Bilişsel Arama, sorgunun SQL tam olarak numaraya almak için sorgu sayfalamalarını kullanır. DISTINCT anahtar sözcüğü veya GROUP BY yan tümcesi, sonuçları sayfalara eklemek için kullanılan devamlılık belirteçleriyle uyumlu değildir.
Desteklenmeyen sorgu örnekleri:
SELECT DISTINCT c.id, c.userId, c._ts FROM c WHERE c._ts >= @HighWaterMark ORDER BY c._ts
SELECT DISTINCT VALUE c.name FROM c ORDER BY c.name
SELECT TOP 4 COUNT(1) AS foodGroupCount, f.foodGroup FROM Food f GROUP BY f.foodGroup
DB Cosmos ORDER BY yan tümcesini kullanarak DISTINCT anahtar sözcüğüyleSQL sorgu sayfalama özelliğini desteklemeye yönelik bir geçici çözüme sahip olsa da, Azure Bilişsel Arama. Sorgu tek bir JSON değeri, diğer Azure Bilişsel Arama ise bir JSON nesnesi bekler.
-- The following query returns a single JSON value and isn't supported by Azure Cognitive Search
SELECT DISTINCT VALUE c.name FROM c ORDER BY c.name
3. Adım - Hedef arama dizini oluşturma
Henüz Azure Bilişsel Arama hedef dizin oluşturun. Aşağıdaki örnek, kimlik ve açıklama alanı ile bir dizin oluşturur:
POST https://[service name].search.windows.net/indexes?api-version=2020-06-30
Content-Type: application/json
api-key: [Search service admin key]
{
"name": "mysearchindex",
"fields": [{
"name": "id",
"type": "Edm.String",
"key": true,
"searchable": false
}, {
"name": "description",
"type": "Edm.String",
"filterable": false,
"searchable": true,
"sortable": false,
"facetable": false,
"suggestions": true
}]
}
Hedef dizininizin şemasının kaynak JSON belgelerinin şeması veya özel sorgu projeksiyonu çıkışıyla uyumlu olduğundan emin olun.
Not
Bölümlenmiş koleksiyonlar için varsayılan belge anahtarı Azure Cosmos DB'nin özelliğidir ve alan adları bir alt çizgi karakteriyle başlayamaya Azure Bilişsel Arama otomatik olarak olarak yeniden _rid rid adlandırılır. Ayrıca Azure Cosmos DB _rid değerleri, veritabanı anahtarlarında geçersiz Azure Bilişsel Arama içerir. Bu nedenle değerler _rid Base64 ile kodlanmış durumdadır.
MongoDB koleksiyonları için, Azure Bilişsel Arama otomatik olarak olarak _id olarak yeniden id adlandırılır.
JSON Veri Türleri ile Azure Bilişsel Arama Türleri Arasında Eşleme
| JSON veri türü | Uyumlu hedef dizin alanı türleri |
|---|---|
| Bool | Edm.Boolean, Edm.String |
| Tamsayılara benzer sayılar | Edm.Int32, Edm.Int64, Edm.String |
| Kayan noktalara benzer sayılar | Edm.Double, Edm.String |
| Dize | Edm.String |
| İlkel tür dizileri, örneğin ["a", "b", "c"] | Collection(Edm.String) |
| Tarihlere benzer dizeler | Edm.DateTimeOffset, Edm.String |
| GeoJSON nesneleri, örneğin { "type": "Point", "coordinates": [long, lat] } | Edm.GeographyPoint |
| Diğer JSON nesneleri | Yok |
4. Adım - Dizin oluşturmayı yapılandırma ve çalıştırma
Dizin ve veri kaynağı oluşturulduktan sonra dizin oluşturanı oluşturabilirsiniz:
POST https://[service name].search.windows.net/indexers?api-version=2020-06-30
Content-Type: application/json
api-key: [admin key]
{
"name" : "mycosmosdbindexer",
"dataSourceName" : "mycosmosdbdatasource",
"targetIndexName" : "mysearchindex",
"schedule" : { "interval" : "PT2H" }
}
Bu dizin oluşturma iki saatte bir çalışır (zamanlama aralığı "PT2H" olarak ayarlanır). Bir dizine 30 dakikada bir çalıştırmak için aralığı "PT30M" olarak ayarlayın. Desteklenen en kısa aralık 5 dakikadır. Zamanlama isteğe bağlıdır; atlanırsa, dizin oluşturan bir dizin oluşturma yalnızca bir kez çalışır. Ancak, herhangi bir zamanda isteğe bağlı olarak bir dizin oluşturma çalıştırabilirsiniz.
Dizin Oluşturma API'si hakkında daha fazla bilgi için dizin oluşturma'ya bakın.
Dizin oluşturma zamanlamalarını tanımlama hakkında daha fazla bilgi için, bkz. How to schedule indexers for Azure Bilişsel Arama.
.NET’i kullanma
Genel kullanıma açık .NET SDK'sı, genel kullanıma açık olan tüm REST API. Kavramları, iş akışını ve gereksinimleri öğrenmek REST API önceki çalışma bölümünü gözden geçirmenizi öneririz. Ardından yönetilen kodda bir JSON dizineci uygulamak için aşağıdaki .NET API başvuru belgelerine başvurabilirsiniz.
- azure.search.documents.indexes.models.searchindexerdatasourceconnection
- azure.search.documents.indexes.models.searchindexerdatasourcetype
- azure.search.documents.indexes.models.searchindex
- azure.search.documents.indexes.models.searchindexer
Değiştirilen belgelerin dizinini oluşturma
Veri değişikliği algılama ilkesi amacı, değiştirilen veri öğelerini verimli bir şekilde tanımlamaktır. Şu anda desteklenen tek ilke, Azure Cosmos DB tarafından sağlanan ve aşağıdaki gibi belirtilen HighWaterMarkChangeDetectionPolicy _ts (zaman damgası) özelliğinin kullanımıdır:
{
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "_ts"
}
Bu ilkenin kullanılması, iyi bir Dizin Oluşturucu performansını güvence altına almak için önemle önerilir.
Özel bir sorgu kullanıyorsanız, _ts özelliğinin sorgu tarafından yansıtıldığınızdan emin olun.
Artımlı ilerleme ve özel sorgular
Dizin oluşturma sırasında artımlı ilerleme durumu, Dizin Oluşturucu yürütmesi geçici hatalara veya yürütme süresi sınırına göre kesintiye uğrarsa, dizin oluşturucunun, tüm koleksiyonu sıfırdan yeniden eklemek yerine, her çalıştırıldığında kaldığınız yeri açabilmesini sağlar. Büyük koleksiyonlar dizinlenirken bu özellikle önemlidir.
Özel bir sorgu kullanırken artımlı ilerlemeyi etkinleştirmek için sorgunuzun sonuçları sütuna göre sipariş ettiğinden emin olun _ts . Bu, Azure Bilişsel Arama 'in hatalara karşı artımlı ilerleme durumunu sağlamak için kullandığı düzenli denetim noktası sağlar.
Bazı durumlarda, sorgunuz bir ORDER BY [collection alias]._ts yan tümce içeriyorsa bile Azure bilişsel arama sorgunun tarafından sıralandığı çıkarmayabilir _ts . Azure Bilişsel Arama sonuçları yapılandırma özelliği kullanılarak sıralanarak bilgi verebilirsiniz assumeOrderByHighWaterMarkColumn . Bu ipucunu belirtmek için, Dizin oluşturucuyu aşağıdaki şekilde oluşturun veya güncelleştirin:
{
... other indexer definition properties
"parameters" : {
"configuration" : { "assumeOrderByHighWaterMarkColumn" : true } }
}
Silinen belgelerin dizinini oluşturma
Koleksiyondan satırlar silindiğinde, normalde bu satırları arama dizininden da silmek istersiniz. Veri silme algılaması ilkesinin amacı, silinen veri öğelerini etkin bir şekilde tanımlamaktır. Şu anda, Soft Delete ilke yalnızca (silme işlemi bir sıralama bayrağıyla işaretlenir), aşağıdaki şekilde belirtilir:
{
"@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"
}
Özel bir sorgu kullanıyorsanız tarafından başvurulan özelliğin softDeleteColumnName sorgu tarafından yansıtıldığınızdan emin olun.
Aşağıdaki örnek, geçici silme ilkesiyle bir veri kaynağı oluşturur:
POST https://[service name].search.windows.net/datasources?api-version=2020-06-30
Content-Type: application/json
api-key: [Search service admin key]
{
"name": "mycosmosdbdatasource",
"type": "cosmosdb",
"credentials": {
"connectionString": "AccountEndpoint=https://myCosmosDbEndpoint.documents.azure.com;AccountKey=myCosmosDbAuthKey;Database=myCosmosDbDatabaseId"
},
"container": { "name": "myCosmosDbCollectionId" },
"dataChangeDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName": "_ts"
},
"dataDeletionDetectionPolicy": {
"@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
"softDeleteColumnName": "isDeleted",
"softDeleteMarkerValue": "true"
}
}
Sonraki adımlar
Tebrikler! Azure Cosmos DB bir dizin oluşturucu kullanarak Azure Bilişsel Arama ile nasıl tümleştirileceğini öğrendiniz.
- Azure Cosmos DB hakkında daha fazla bilgi edinmek için Azure Cosmos DB hizmeti sayfasınabakın.
- Azure Bilişsel Arama hakkında daha fazla bilgi için Arama hizmeti sayfasınabakın.