Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Bu makalede, Azure Yapay Zeka Arama'da var olan bir dizinin artımlı dizin oluşturma yoluyla şema değişiklikleriyle veya içerik değişiklikleriyle nasıl güncelleştirilecekleri açıklanmaktadır.
Ipucu
Belgeleri hemen güncelleştirmek için İçeriği güncelleştir'e atlayın. Şema değişiklikleri için bkz. Dizin şemasını güncelleştirme.
Önkoşullar
Bir Azure Yapay Zeka Arama hizmeti (herhangi bir katman). Hizmet oluştur veya var olan bir hizmet bul.
Belgeler içeren mevcut bir arama dizini. Bu makalede zaten bir dizin oluşturduğunuz ve belgeleri yüklediğiniz varsayılır.
Dizinleri güncelleştirme veya yeniden derleme izinleri:
- Anahtar tabanlı kimlik doğrulaması: Arama hizmetiniz için bir yönetici API anahtarı .
- Rol tabanlı kimlik doğrulaması: Belge güncellemeleri için Araştırma Dizini Verisi Katılımcı rolünü veya şema değişiklikleri için Arama Hizmeti Katılımcı rolünü kullanın.
SDK geliştirme için Azure Search istemci kitaplığını yükleyin:
- Python: azure-search-documents
- .NET: Azure. Search.Documents
- JavaScript: @azure/search-documents
- Java: azure-search-documents
Ipucu
Etkin geliştirme sırasında dizin tasarımını yinelerken dizinleri bırakmak ve yeniden oluşturmak yaygın bir işlemdir. Yeniden dizinlemenin daha hızlı gerçekleşmesi için küçük bir temsili veri örneğiyle çalışın. Üretim şeması değişiklikleri için yeni bir dizini yan yana oluşturup test edin, ardından uygulama kodunu değiştirmeden dizinleri değiştirmek için dizin diğer adını kullanın.
İçeriği güncelleştirme
Artımlı dizin oluşturma ve kaynak verilerdeki değişikliklere karşı bir dizini eşitleme, çoğu arama uygulaması için temeldir. Bu bölümde REST API aracılığıyla bir arama dizininin içeriğini ekleme, kaldırma veya üzerine yazma iş akışı açıklanır, ancak Azure SDK’ları eşdeğer işlevler sağlar.
İsteğin gövdesi dizine eklenecek bir veya daha fazla belge içeriyor. İstek içinde, dizindeki her belge aşağıdaki gibidir:
- Harf büyüklüğüne duyarlı benzersiz bir anahtarla tanımlanır.
- Bir eylemle ilişkili: "upload", "delete", "merge" veya "mergeOrUpload".
- Eklediğiniz veya güncelleştirdiğiniz her alan için bir dizi ad/değer çifti ile doldurulur.
{
"value": [
{
"@search.action": "upload (default) | merge | mergeOrUpload | delete",
"key_field_name": "unique_key_of_document", (key/value pair for key field from index schema)
"field_name": field_value (name/value pairs matching index schema)
...
},
...
]
}
Başvuru:Belgeler - Dizin
İlk olarak, Documents - Index (REST) veya Azure SDK’ları eşdeğer bir API gibi belgeleri yüklemek için API'leri kullanın. Dizin oluşturma teknikleri hakkında daha fazla bilgi için bkz . Belgeleri yükleme.
Büyük bir güncelleştirme için toplu işlem (toplu iş başına en fazla 1.000 belge veya toplu iş başına yaklaşık 16 MB (hangisi önce gelirse) önerilir ve dizin oluşturma performansını önemli ölçüde artırır.
@search.actionVar olan belgeler üzerindeki etkisini belirlemek için API'de parametresini ayarlayın. Artımlı güncelleştirmeler içinmergeOrUpload(en yaygın), belgeleri kaldırmak içindelete, veya mevcut belgelerde kısmi alan güncellemeleri içinmergekullanın.Eylem Etkisi Silmek Belgenin tamamını dizinden kaldırır. Tek bir alanı kaldırmak istiyorsanız, bunun yerine birleştirmeyi kullanın ve söz konusu alanı null olarak ayarlayın. Silinen belgeler ve alanlar dizinde hemen yer açmaz. Birkaç dakikada bir, fiziksel silme işlemini arka plan işlemi gerçekleştirir. dizin istatistiklerini döndürmek için Azure portalını veya API'yi kullandığınızda, silme işleminin Azure portalına ve API'ler aracılığıyla yansıtılmadan önce küçük bir gecikme bekleyebilirsiniz. Daha fazla bilgi için bkz. Arama dizinindeki belgeleri silme. Birleştirme Zaten var olan bir belgeyi günceller ve bulunamayan bir belgeyi başarısız olarak işaretler. Birleştirme, mevcut değerlerin yerini alır. Bu nedenle, Collection(Edm.String)türündeki alanlar gibi birden çok değer içeren koleksiyon alanlarını denetlemeyi unutmayın. Örneğin, birtagsalanı["budget"]değeriyle başlıyorsa ve["economy", "pool"]ile bir birleştirme gerçekleştirirseniz,tagsalanının son değeri["economy", "pool"]olur. Bu["budget", "economy", "pool"]olmayacak.
Aynı davranış karmaşık koleksiyonlar için de geçerlidir. Belge, değeri[{ "Type": "Budget Room", "BaseRate": 75.0 }]olan Rooms adlı karmaşık bir koleksiyon alanı içeriyorsa ve değeriyle[{ "Type": "Standard Room" }, { "Type": "Budget Room", "BaseRate": 60.5 }]bir birleştirme yürütürseniz Rooms alanının son değeri olur[{ "Type": "Standard Room" }, { "Type": "Budget Room", "BaseRate": 60.5 }]. Yeni ve mevcut değerleri eklemez veya birleştirmez.birleştirVeyaYükle Belge varsa birleştirme gibi, belge yeniyse yükleme yapar. Bu, artımlı güncelleştirmeler için en yaygın eylemdir. Yüklemek Belge yeniyse eklendiği ve varsa güncelleştirildiği veya değiştirildiği "upsert" örneğine benzer. Belgede dizinin gerektirdiği değerler eksikse, belge alanının değeri null olarak ayarlanır.
Dizin oluşturma sırasında sorgular çalışmaya devam eder, ancak var olan alanları güncelleştiriyor veya kaldırıyorsanız, karışık sonuçlar ve daha yüksek kısıtlama sıklığı bekleyebilirsiniz.
Not
İstek gövdesindeki eylemin ilk olarak yürütülmesi için herhangi bir sıralama garantisi yoktur. Tek bir istek gövdesinde aynı belgeyle ilişkilendirilmiş birden çok "birleştirme" eyleminin olması önerilmez. Aynı belge için birden çok "birleştirme" eylemi gerekiyorsa, belgeyi arama dizininde güncelleştirmeden önce istemci tarafı birleştirme işlemini gerçekleştirin.
Yanıt
Başarılı bir yanıt için durum kodu 200 döndürülür, yani tüm öğeler durabilir bir şekilde depolanmıştır ve dizine alınacaktır. Dizin oluşturma arka planda çalışır ve dizin oluşturma işlemi tamamlandıktan birkaç saniye sonra yeni belgeleri kullanıma (sorgulanabilir ve aranabilir) sağlar. Belirli bir gecikme, hizmet üzerindeki yüke bağlıdır.
Başarılı dizin oluşturma, tüm öğeler için true olarak ayarlanan durum özelliğinin yanı sıra özelliğin statusCode 201 (yeni yüklenen belgeler için) veya 200 (birleştirilmiş veya silinmiş belgeler için) olarak ayarlanmasıyla gösterilir:
{
"value": [
{
"key": "unique_key_of_new_document",
"status": true,
"errorMessage": null,
"statusCode": 201
},
{
"key": "unique_key_of_merged_document",
"status": true,
"errorMessage": null,
"statusCode": 200
},
{
"key": "unique_key_of_deleted_document",
"status": true,
"errorMessage": null,
"statusCode": 200
}
]
}
En az bir öğe başarıyla dizine alınamayınca durum kodu 207 döndürülür. Dizine kaydedilmemiş öğelerde durum alanı false olarak ayarlanır.
errorMessage ve statusCode özellikleri dizin oluşturma hatasının nedenini gösterir:
{
"value": [
{
"key": "unique_key_of_document_1",
"status": false,
"errorMessage": "The search service is too busy to process this document. Please try again later.",
"statusCode": 503
},
{
"key": "unique_key_of_document_2",
"status": false,
"errorMessage": "Document not found.",
"statusCode": 404
},
{
"key": "unique_key_of_document_3",
"status": false,
"errorMessage": "Index is temporarily unavailable because it was updated with the 'allowIndexDowntime' flag set to 'true'. Please try again later.",
"statusCode": 422
}
]
}
errorMessage özelliği, mümkünse dizin oluşturma hatasının nedenini gösterir.
Aşağıdaki tabloda, yanıtta döndürülebilecek çeşitli belge başına durum kodları açıklanmaktadır. Bazı durum kodları isteğin kendisiyle ilgili sorunları, diğerleri ise geçici hata koşullarını belirtir. İkincisi, bir gecikmeden sonra yeniden denemeniz gerekir.
| Durum kodu | Anlamı | Yeniden denenebilir | Notlar |
|---|---|---|---|
| 200 | Belge başarıyla değiştirildi veya silindi. | Yok | Silme işlemleri idempotenttir, yani birden fazla kez uygulandığında sonuç değişmez. Başka bir ifadeyle, dizinde bir belge anahtarı olmasa bile, bu anahtarla silme işlemi denenmesi 200 durum koduyla sonuçlanır. |
| 201 | Belge başarıyla oluşturuldu. | Yok | |
| 400 | Belgede dizine alınmasını engelleyen bir hata oluştu. | Hayır | Yanıttaki hata iletisi, belgede neyin yanlış olduğunu gösterir. |
| 404 | Belirtilen anahtar dizinde bulunmadığından belge birleştirilemedi. | Hayır | Bu hata, yüklemeler yeni belgeler oluşturduğunda oluşmaz ve silme işlemleri idempotent olduğundan gerçekleşmez. |
| 409 | Bir belgenin dizinini oluşturma girişiminde bulunurken sürüm çakışması algılandı. | Evet | Aynı belgeyi aynı anda birden çok kez dizine almaya çalıştığınızda bu durum oluşabilir. |
| 422 | 'allowIndexDowntime' bayrağı 'true' olarak ayarlandığından dizin geçici olarak kullanılamıyor. | Evet | |
| 429 | Çok Fazla İstek Var | Evet | Dizin oluşturma sırasında bu hata kodunu alırsanız, genellikle depolama alanınız azalmış demektir. Depolama sınırlarına yaklaştığınızda, siz bazı belgeleri silene kadar hizmet ekleyemez veya güncelleştiremezsiniz durumunu girebilir. Daha fazla bilgi için bkz. Daha fazla depolama alanı istiyorsanız kapasiteyi planlama ve yönetme veya belgeleri silerek yer açma. |
| 503 | Arama hizmetiniz, büyük olasılıkla ağır yük nedeniyle geçici olarak kullanılamıyor. | Evet | Kodunuz bu durumda yeniden denemeden önce beklemeli veya hizmetin kullanım dışı kalma süresini uzatma riskiniz vardır. |
İstemci kodunuz sık sık bir 207 yanıtıyla karşılaşırsa, olası nedenlerden biri sistemin yük altında olmasıdır. 503 için statusCode özelliğini denetleyerek bunu onaylayabilirsiniz. statusCode 503 ise dizin oluşturma isteklerini azaltmanızı öneririz. Aksi takdirde, dizinleme trafiği azalmazsa, sistem 503 hata koduyla tüm istekleri reddetmeye başlayabilir.
Durum kodu 429, dizin başına belge sayısı kotanızı aştığınızı gösterir. Daha yüksek kapasite sınırları için yükseltmeniz veya yeni bir dizin oluşturmanız gerekir.
Not
Saat dilimi bilgilerini içeren DateTimeOffset değerlerini dizininize yüklediğinizde, Azure Yapay Zeka Arama bu değerleri UTC'ye normalleştirir. Örneğin, 2024-01-13T14:03:00-08:00, 2024-01-13T22:03:00Z olarak depolanır. Saat dilimi bilgilerini depolamanız gerekiyorsa, bu veri noktası için dizininize ek bir sütun ekleyin.
Artımlı dizin oluşturma ipuçları
Dizin oluşturucular artımlı dizin oluşturmayı otomatikleştirir. Dizin oluşturucu kullanabiliyorsanız ve veri kaynağı değişiklik izlemeyi destekliyorsa, aranabilir içerik eklemek, güncelleştirmek veya üzerine yazmak için dizin oluşturucuyu yinelenen bir zamanlamaya göre çalıştırarak dış verilerinizle eşitlenmesini sağlayabilirsiniz.
Doğrudan gönderme API'sini kullanarak dizin çağrıları yapıyorsanız,
mergeOrUploadöğesini arama eylemi olarak kullanın.Yük, eklemek, güncelleştirmek veya silmek istediğiniz her belgenin anahtarlarını veya tanımlayıcılarını içermelidir.
Dizininiz vektör alanları içeriyorsa ve özelliğini false olarak ayarlarsanız
stored, değer değişmemiş olsa bile kısmi belge güncelleştirmenizde vektör sağladığınızdan emin olun.stored'yi false olarak ayarlamanın yan etkisi, vektörlerin yeniden dizinleme işlemine bırakılması. Belge yükünde vektör sağlanması bunun gerçekleşmesini önler.Karmaşık türlerdeki basit alanların ve alt alanların içeriğini güncelleştirmek için, yalnızca değiştirmek istediğiniz alanları listeleyin. Örneğin, yalnızca bir açıklama alanını güncelleştirmeniz gerekiyorsa, yük belge anahtarından ve değiştirilen açıklamadan oluşmalıdır. Diğer alanların atlanması, mevcut değerlerini korur.
Satır içi değişiklikleri dize koleksiyonunda birleştirmek için değerin tamamını sağlayın. Önceki bölümdeki
tagsalan örneğini hatırlayın. Yeni değerler, alanın tamamı için eski değerlerin üzerine yazılır ve alanın içeriğinde birleştirme yoktur.
Aşağıda şu ipuçlarını gösteren bir REST API örneği verilmiştir:
### Get Stay-Kay City Hotel by ID
GET {{baseUrl}}/indexes/hotels-vector-quickstart/docs('1')?api-version=2026-04-01 HTTP/1.1
Content-Type: application/json
api-key: {{apiKey}}
### Change the description, city, and tags for Stay-Kay City Hotel
POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search.index?api-version=2026-04-01 HTTP/1.1
Content-Type: application/json
api-key: {{apiKey}}
{
"value": [
{
"@search.action": "mergeOrUpload",
"HotelId": "1",
"Description": "I'm overwriting the description for Stay-Kay City Hotel.",
"Tags": ["my old item", "my new item"],
"Address": {
"City": "Gotham City"
}
}
]
}
### Retrieve the same document, confirm the overwrites and retention of all other values
GET {{baseUrl}}/indexes/hotels-vector-quickstart/docs('1')?api-version=2026-04-01 HTTP/1.1
Content-Type: application/json
api-key: {{apiKey}}
Başvuru:Belgeler - Dizin, Arama Belgesi
SDK örnekleri
Aşağıdaki örnekler, Azure SDK’ları kullanarak belgelerin nasıl güncelleştirileceğini gösterir.
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
# Set up the client
service_name = "<your-search-service-name>"
index_name = "hotels-sample"
api_key = "<your-admin-api-key>"
endpoint = f"https://{service_name}.search.windows.net"
credential = AzureKeyCredential(api_key)
client = SearchClient(endpoint=endpoint, index_name=index_name, credential=credential)
# Update documents using merge_or_upload
documents = [
{
"HotelId": "1",
"Description": "Updated description for the hotel.",
"Tags": ["updated", "renovated"]
}
]
result = client.merge_or_upload_documents(documents=documents)
print(f"Updated {len(result)} document(s)")
Başvuru:SearchClient, merge_or_upload_documents
Dizin şemasını güncelleştirme
Dizin şeması, arama hizmetinde oluşturulan fiziksel veri yapılarını tanımlar, bu nedenle tam yeniden derleme yapmadan yapabileceğiniz çok fazla şema değişikliği yoktur.
Yeniden derleme olmadan güncelleştirmeler
Aşağıdaki liste, var olan bir dizine sorunsuz bir şekilde getirilebilen şema değişikliklerini numaralandırır. Genellikle, liste sorgu yürütme sırasında kullanılan yeni alanları ve işlevleri içerir.
- Dizin açıklaması ekle
- Yeni alan ekleme
-
retrievableVar olan bir alanda özniteliği ayarlama - Mevcut bir
searchAnalyzerolan alandaindexAnalyzergüncelleştirmesi yapın - Dizine yeni bir çözümleyici tanımı ekleme (yeni alanlara uygulanabilir)
- Puanlama profilleri ekleme, güncelleştirme veya silme
- Eş anlamlı eşlemeleri ekleme, güncelleştirme veya silme
- Anlamsal yapılandırmaları ekleme, güncelleştirme veya silme
- CORS ayarlarını ekleme, güncelleştirme veya silme
İşlemlerin sırası:
Şemayı önceki listeden güncelleştirmelerle düzeltin.
Arama hizmetindeki dizin şemasını güncelleştirin.
Yeni bir alan eklediyseniz dizin içeriğini düzeltilmiş şemanızla eşleşecek şekilde güncelleştirin. Diğer tüm değişiklikler için mevcut dizinlenmiş içerik olduğu gibi kullanılır.
Bir dizin şemasını yeni bir alan içerecek şekilde güncelleştirdiğinizde, dizindeki mevcut belgelere bu alan için null değer verilir. Sonraki dizin oluşturma işinde, dış kaynak verilerden gelen değerler, Azure Yapay Zeka Arama tarafından eklenen null değerlerin yerini alır.
Güncelleştirmeler sırasında sorgu kesintisi yaşanmamalıdır, ancak güncelleştirmeler yürürlüğe girecek şekilde sorgu sonuçları farklılık gösterir.
Yeniden derleme gerektiren güncelleştirmeler
Bazı değişiklikler için dizin silme ve yeniden oluşturma gerekir, bu da geçerli bir dizini yenisiyle değiştirmeyi içerir.
| Eylem | Açıklama |
|---|---|
| Alanı sil | Bir alanın tüm izlemelerini fiziksel olarak kaldırmak için dizini yeniden oluşturmanız gerekir. Hemen yeniden derleme pratik olmadığında, erişimi eski bir alandan uzağa yönlendirmek için uygulama kodunu değiştirebilir veya aramaAlanları'nı kullanarak hangi alanların aranıp döndürüleceğini seçmek için sorgu parametrelerini seçebilirsiniz . Fiziksel olarak, söz konusu alanı atlayan bir şema uyguladığınızda, alan tanımı ve içeriği bir sonraki yeniden derlemeye kadar dizinde kalır. |
| Alan tanımını değiştirme | Alan adında, veri türünde veya belirli dizin özniteliklerinde (aranabilir, filtrelenebilir, sıralanabilir, modellenebilir) yapılan düzeltmeler tam yeniden derleme gerektirir. |
| Alana çözümleyici atama | Çözümleyiciler bir dizinde tanımlanır, alanlara atanır ve sonra belirteçlerin nasıl oluşturulduğunu bildirmek için dizin oluşturma sırasında çağrılır. Bir dizine istediğiniz zaman yeni bir çözümleyici tanımı ekleyebilirsiniz, ancak yalnızca alan oluşturulduğunda bir çözümleyici atayabilirsiniz . Bu hem çözümleyici hem de indexAnalyzer özellikleri için geçerlidir. searchAnalyzer özelliği bir özel durumdur (bu özelliği varolan bir alana atayabilirsiniz). |
| Dizindeki çözümleyici tanımını güncelleştirme veya silme | Dizinin tamamını yeniden oluşturmadığınız sürece dizindeki mevcut çözümleyici yapılandırmasını (çözümleyici, belirteç oluşturucu, belirteç filtresi veya karakter filtresi) silemez veya değiştiremezsiniz. |
| Öneri oluşturucuya alan ekleme | Bir alan zaten varsa ve bunu Bir Öneri oluşturucu yapısına eklemek istiyorsanız, dizini yeniden derleyin. |
| Hizmetinizi veya katmanınızı yükseltme | Daha fazla kapasiteye ihtiyacınız varsa hizmetinizi yükseltip yükseltebileceğinizi veya daha yüksek bir fiyatlandırma katmanına geçiş yapabileceğinizi denetleyin. Aksi takdirde yeni bir hizmet oluşturmanız ve dizinlerinizi sıfırdan yeniden oluşturmanız gerekir. Bu işlemi otomatikleştirmeye yardımcı olmak için dizininizi bir dizi JSON dosyasına yedekleyen bir kod örneği kullanabilirsiniz. Ardından dizini belirttiğiniz bir arama hizmetinde yeniden oluşturabilirsiniz. |
İşlemlerin sırası:
İleride başvurmak veya yeni bir sürüm için temel olarak kullanmak üzere ihtiyacınız olması durumunda bir dizin tanımı alın.
Dizin içeriğinin bir kopyasını korumak için bir yedekleme ve geri yükleme çözümü kullanmayı göz önünde bulundurun. C# ve Python içinde çözümler vardır. daha güncel olduğundan Python sürümünü öneririz.
Arama hizmetinizde kapasite varsa yenisini oluştururken ve test ederken mevcut dizini koruyun.
Mevcut dizini bırakın. Dizini hedefleyen sorgular anında iptal edilir. Bir dizini silmenin geri alınamaz olduğunu ve alan koleksiyonu ve diğer yapılar için fiziksel depolamayı yok ettiğini unutmayın.
Değiştirilmiş alan tanımlarını ve yapılandırmaları içeren isteğin gövdesiyle birlikte gözden geçirilmiş bir dizin gönderin.
Dizini dış kaynaktan belgelerle birlikte yükleyin. Belgeler, yeni şemanın alan tanımları ve yapılandırmaları kullanılarak dizine alınır.
Dizini oluşturduğunuzda, dizin şemasındaki her alan için fiziksel depolama alanı ayrılır ve aranabilir her alan için ters dizin ve her vektör alanı için bir vektör dizini oluşturulur. Aranamayan alanlar filtrelerde veya ifadelerde kullanılabilir, ancak ters dizinleri mevcut değildir ve tam metin veya bulanık arama yapılamaz. Dizin yeniden derlemesinde, bu ters dizinler ve vektör dizinleri, sağladığınız dizin şemasına göre silinir ve yeniden oluşturulur.
Uygulama kodunda kesintiyi en aza indirmek için dizin takma adı oluşturmayı göz önünde bulundurun. Uygulama kodu takma ada başvurur, ancak takma adın bağlı olduğu dizinin adını güncelleyebilirsiniz.
Dizin açıklaması ekleme
Bir dizinin, bir sistemin birkaç dizine erişmesi ve açıklamaya göre karar vermesi gerektiğinde belirtebileceğiniz ve kullanabileceğiniz bir özelliği vardır description . Çalışma zamanında doğru dizini seçmesi gereken bir Model Bağlam Protokolü (MCP) sunucusu düşünün. Karar, yalnızca dizin adı yerine açıklamayı temel alabilir.
Dizin açıklaması bir şema güncelleştirmesidir ve dizinin tamamını yeniden oluşturmak zorunda kalmadan bunu ekleyebilirsiniz.
- Dize uzunluğu en fazla 4.000 karakterdir.
- İçerik, Unicode olarak insan tarafından okunabilir olmalıdır. Hangi dili kullanacağınızı kullanım örneğinin belirlemesi gerekir.
Azure portalı, en son kararlı REST API veya özelliği sağlayan bir Azure SDK paketi aracılığıyla dizin açıklaması ekleyebilirsiniz.
Azure portalı en son önizleme API'sini destekler.
Azure portalında arama hizmetinize gidin.
Arama yönetimi>Dizinleri'nin altında bir dizin seçin.
JSON Düzenle'yi seçin.
"description"ve ardından açıklamayı ekleyin. Değer 4.000 karakterden küçük ve Unicode olmalıdır.
Dizini kaydedin.
İş yüklerini dengeleme
Dizin oluşturma arka planda çalışmaz, ancak arama hizmeti dizin oluşturma işlerini devam eden sorgulara göre dengeler. Dizin oluşturma sırasında sorguların zamanında tamamlandığından emin olmak için Azure portalında monitor sorgu isteklerini yapabilirsiniz.
Dizin oluşturma iş yükleri kabul edilemez düzeyde sorgu gecikme süresine neden olursa performans analizi gerçekleştirin ve olası risk azaltma için bu performans ipuçlarını gözden geçirin.
Güncelleştirmeleri denetleme
İlk belge yüklenir yüklenmez bir dizini sorgulamaya başlayabilirsiniz. Bir belgenin kimliğini biliyorsanız , Arama Belgesi REST API'si belirli bir belgeyi döndürür. Daha geniş kapsamlı test için dizin tamamen yüklenene kadar beklemeniz ve ardından görmeyi beklediğiniz bağlamı doğrulamak için sorguları kullanmanız gerekir.
Güncelleştirilmiş içeriği denetlemek için Arama Gezgini'ni veya REST istemcisini kullanabilirsiniz.
Bir alanı eklediyseniz veya yeniden adlandırdıysanız, o alanı döndürmek için select komutunu kullanın:
"search": "*",
"select": "document-id, my-new-field, some-old-field",
"count": true
Azure portalı dizin boyutu ve vektör dizin boyutu sağlar. Bir dizini güncelleştirdikten sonra bu değerleri de kontrol edebilirsiniz, ancak hizmet değişikliği işlerken küçük bir gecikme beklemeyi ve portal yenileme hızlarını hesaba katmak için birkaç dakika beklemeyi unutmayın.
Yeniden dizinleme sorunlarını giderme
Aşağıdaki tabloda dizinleri güncelleştirirken veya yeniden oluştururken karşılaşılan yaygın sorunlar ve bunların nasıl çözüleceğinin listesi yer alır.
| Sorunu | Neden | Çözünürlük |
|---|---|---|
| Karışık sonuçlarla 207 yanıtı | Bazı belgeler başarılı, diğerleri başarısız oldu. | Yanıt olarak her bir belgeyi denetleyin statusCode. 503 durumunda, istekleri sınırlayıp yeniden deneyin. |
| 409 Sürüm çakışması | Aynı belgede eşzamanlı güncelleştirmeler. | Aynı belgedeki güncelleştirmeleri sıralı bir şekilde işleyin veya üstel geri çekilmeli bir yeniden deneme uygulayın. |
| 429 Çok Fazla İstek Var | Depolama kotası aşıldı veya çok fazla eşzamanlı istek var. | Boş alan açmak için belgeleri silin veya daha fazla kapasite için hizmet katmanını yükseltin. |
| 503 Hizmet kullanılamıyor | Ağır yük altında hizmet. | Bekleyin ve üstel geri çekilme ile yeniden deneyin. Toplu iş boyutunu küçültmeyi göz önünde bulundurun. |
| Silindikten sonra belge sayısı değişmedi | Silme işlemi zaman uyumsuzdur. | Arka plan işleminin fiziksel silme işlemini tamamlaması için 2-3 dakika bekleyin. |
| Yeni alan null döndürür | Alan şemaya eklendi, ancak belgeler yeniden dizine alınmadı. | Yeni alanı doldurmak için dizin oluşturucuyu çalıştırın veya güncelleştirilmiş belgeleri yükleyin. |
| Şema değişikliği reddedildi | Uyumsuz değişiklik denendi (yeniden adlandır, tür değişikliği). | Dizini silin ve yeniden oluşturun. Kapalı kalma süresini en aza indirmek için indeks takma adını kullanın. |
Ayrıca bkz.
- Indeksleyiciye genel bakış
- Arama dizininden belgeleri silme
- Büyük veri kümelerini büyük ölçekte dizinleme
- Azure portalında İndeksleme
- Azure SQL Veritabanı dizin oluşturucu
- NoSQL dizin oluşturucu için Azure Cosmos DB
- Azure blob dizin oluşturucu
- Azure tablo dizin oluşturucu
- Veri, gizlilik ve yerleşik korumalar