Dizin oluşturucuları, becerileri veya belgeleri çalıştırma veya sıfırlama
Azure AI Search'te dizin oluşturucu çalıştırmanın birkaç yolu vardır:
- "Devre dışı" modunda oluşturulmadığını varsayarak dizin oluşturucu oluşturma işleminde hemen çalıştırın.
- Düzenli aralıklarla yürütmeyi çağırmak için bir zamanlamaya göre çalıştırın.
- "Sıfırlama" ile veya "sıfırlama" olmadan isteğe bağlı olarak çalıştırın.
Bu makalede dizin oluşturucuları isteğe bağlı olarak sıfırlamayla ve sıfırlama olmadan çalıştırma işlemi açıklanmaktadır. Ayrıca dizin oluşturucu yürütmesi, süresi ve eşzamanlılığı da açıklar.
Dizin oluşturucular Azure kaynaklarına nasıl bağlanır?
Dizin oluşturucular, diğer Azure kaynaklarına fazla giden çağrılar yapan birkaç alt sistemden biridir. Azure rolleri açısından dizin oluşturucuların ayrı kimlikleri yoktur: arama altyapısından başka bir Azure kaynağına bağlantı, bir arama hizmetinin sistem veya kullanıcı tarafından atanan yönetilen kimliği kullanılarak yapılır. Dizin oluşturucu sanal ağdaki bir Azure kaynağına bağlanıyorsa, bu bağlantı için paylaşılan bir özel bağlantı oluşturmanız gerekir. Güvenli bağlantılar hakkında daha fazla bilgi için bkz . Azure AI Search'te güvenlik.
Dizin oluşturucu yürütme
Arama hizmeti, arama birimi başına bir dizin oluşturucu işi çalıştırır. Her arama hizmeti bir arama birimiyle başlar, ancak her yeni bölüm veya çoğaltma hizmetinizin arama birimlerini artırır. Arama birimi sayısını portalın Genel Bakış sayfasının Temel bölümünden de kontrol edebilirsiniz. Eşzamanlı işlemeye ihtiyacınız varsa, arama birimlerinizin yeterli çoğaltma içerdiğine emin olun. Dizin oluşturucular arka planda çalışmaz, bu nedenle hizmet baskı altındaysa normalden daha fazla sorgu azaltması algılayabilirsiniz.
Aşağıdaki ekran görüntüsünde, aynı anda kaç dizin oluşturucunun çalışabileceğini belirleyen arama birimi sayısı gösterilmektedir.
Dizin oluşturucu yürütmesi başlatıldıktan sonra duraklatamaz veya durduramazsınız. Yüklenecek veya yenilenecek belge kalmadığında veya maksimum çalışma süresi sınırına ulaşıldığında dizin oluşturucu yürütmesi durdurulur.
Yeterli kapasite olduğunu varsayarak aynı anda birden çok dizin oluşturucu çalıştırabilirsiniz, ancak her dizin oluşturucu tek örnektir. Dizin oluşturucu zaten yürütmedeyken yeni bir örnek başlatmak şu hatayı üretir: "Failed to run indexer "<indexer name>" error: "Another indexer invocation is currently in progress; concurrent invocations are not allowed."
Dizin oluşturucu işi yönetilen yürütme ortamında çalışır. Şu anda iki ortam vardır:
Özel yürütme ortamı, arama hizmetinize özgü arama kümelerinde çalışır. Arama hizmetiniz Standard2 veya nigher ise, dizin oluşturucu tanımındaki parametresini özel yürütme ortamında her zaman bir dizin oluşturucu çalıştıracak şekilde ayarlayabilirsiniz
executionEnvironment
.Çok kiracılı bir ortamda, Microsoft tarafından ek ücret ödemeden yönetilen ve güvenliği sağlanan içerik işlemcileri vardır. Bu ortam, yoğun işlem kullanan işlemleri boşaltmak ve rutin işlemler için hizmete özgü kaynakları kullanılabilir durumda bırakmak için kullanılır. Mümkün olduğunda, çoğu beceri kümesi çok kiracılı ortamda yürütülür. Bu varsayılan seçenektir.
Yoğun işlem gerektiren işlemler, içerik işlemcilerinde çalışan beceri kümelerini ve büyük belgeleri olan yüksek hacimli dizin oluşturucu işlerini veya dizin oluşturucu işlerini içerir. Çok kiracılı içerik işlemcilerinde beceri kümesi olmayan işleme, hueristik bilgiler ve sistem bilgileri tarafından belirlenir ve müşteri denetimi altında değildir. S2 hizmetleri ve üzeri, parametre aracılığıyla yalnızca arama kümelerinize dizin oluşturucu ve beceri kümesi işleme sabitlemeyi
executionEnvironment
destekler.Not
IP güvenlik duvarları çok kiracılı ortamı engeller, bu nedenle bir güvenlik duvarınız varsa, çok kiracılı işleme izin veren bir kural oluşturun.
Dizin oluşturucu sınırları her ortam için farklılık gösterir:
İş Yükü | Maksimum süre | En fazla iş sayısı | Yürütme ortamı |
---|---|---|---|
Özel yürütme | 24 saat | 1. arama birimi başına bir dizin oluşturucu işi. | Dizin oluşturma arka planda çalışmaz. Bunun yerine, arama hizmeti tüm dizin oluşturma işlerini devam eden sorgular ve nesne yönetimi eylemleriyle (dizin oluşturma veya güncelleştirme gibi) dengeler. Dizin oluşturucuları çalıştırırken, dizin oluşturma birimleri büyükse biraz sorgu gecikmesi görmeyi beklemeniz gerekir. |
Çok Kiracılı | 2 saat 2 | Belirsiz 3 | İçerik işleme kümesi çok kiracılı olduğundan, talebi karşılamak için içerik işlemcileri eklenir. İsteğe bağlı veya zamanlanmış yürütmede gecikme yaşıyorsanız, bunun nedeni büyük olasılıkla sistemin işlemci eklemesi veya kullanılabilir olmasını beklemesidir. |
1 Arama birimleri, bölümlerin ve çoğaltmaların esnek birleşimleri olabilir, ancak dizin oluşturucu işleri birine veya diğerine bağlı değildir. Başka bir deyişle, 12 biriminiz varsa, arama birimleri nasıl dağıtılırsa dağıtılsın, özel yürütmede eşzamanlı olarak çalışan 12 dizin oluşturucu işiniz olabilir.
2 Tüm verileri işlemek için iki saatten fazla zaman gerekiyorsa, değişiklik algılamayı etkinleştirin ve zaman aşımı nedeniyle durursa dizin oluşturmayı hızlı bir şekilde sürdürmek için dizin oluşturucuyu 5 dakikalık aralıklarla çalışacak şekilde zamanlayın. Daha fazla strateji için bkz . Büyük bir veri kümesini dizine ekleme.
3 "Belirsiz", sınırın iş sayısına göre ölçül olmadığı anlamına gelir. Beceri kümesi işleme gibi bazı iş yükleri paralel olarak çalıştırılabilir ve bu da yalnızca bir dizin oluşturucu dahil olsa bile birçok işe neden olabilir. Ortam kısıtlamalar getirmese de, arama hizmetiniz için dizin oluşturucu sınırları geçerli olmaya devam eder.
Sıfırlama olmadan çalıştırma
Dizin Oluşturucuyu Çalıştır işlemi yalnızca arama dizinini temel alınan veri kaynağındaki değişikliklerle eşitlemek için gerekenleri algılar ve işler. Artımlı dizinleme, veri kaynağındaki yeni ve güncelleştirilmiş belgeler üzerinde dizin oluşturucu yürütmenin başlangıç noktası haline gelen son güncelleştirilmiş arama belgesini bulmak için iç yüksek su işaretini bularak başlar.
Değişiklik algılama , veri kaynağındaki yeni veya güncelleştirilmiş bilgileri belirlemek için gereklidir. Dizin oluşturucular, veri kaynağındaki yeni veya güncelleştirilmiş özellikleri belirlemek için temel alınan veri kaynağının değişiklik algılama özelliklerini kullanır.
Azure Depolama, LastModified özelliği aracılığıyla yerleşik değişiklik algılama özelliğine sahiptir.
Dizin oluşturucunun yeni ve güncelleştirilmiş satırları okuyabilmesi için önce Azure SQL veya Azure Cosmos DB gibi diğer veri kaynaklarının değişiklik algılama için yapılandırılması gerekir.
Temel alınan içerik değişmediyse, çalıştırma işleminin hiçbir etkisi olmaz. Bu durumda, dizin oluşturucu yürütme geçmişi işlenen belgeleri gösterir 0\0
.
Dizin oluşturucuyu, sonraki bölümde açıklandığı gibi tam olarak yeniden işlemek için sıfırlamanız gerekir.
Dizin oluşturucuları sıfırlama
İlk çalıştırmadan sonra, dizin oluşturucu iç yüksek su işareti aracılığıyla hangi arama belgelerinin dizine alındığını izler. İşaretçi hiçbir zaman kullanıma sunulmaz, ancak dahili olarak dizin oluşturucu en son nerede durduğunu bilir.
Bir dizinin tamamını veya bir bölümünü yeniden oluşturmanız gerekiyorsa, sıfırlama yoluyla dizin oluşturucunun yüksek su işaretini temizleyebilirsiniz. Sıfırlama API'leri nesne hiyerarşisindeki azalan düzeylerde kullanılabilir:
- Dizin Oluşturucuları Sıfırla , yüksek su işaretini temizler ve tüm belgelerin tam yeniden dizinlerini gerçekleştirir
- Belgeleri Sıfırla (önizleme) belirli bir belgeyi veya belge listesini yeniden dizine alır
- Becerileri Sıfırlama (önizleme) belirli bir beceri için beceri işlemeyi çağırır
Sıfırlandıktan sonra, yeni ve mevcut belgeleri yeniden işlemek için bir Çalıştır komutuyla izleyin. Veri kaynağında karşılığı olmayan yalnız bırakılmış arama belgeleri sıfırlama/çalıştırma yoluyla kaldırılamaz. Belgeleri silmeniz gerekiyorsa, bunun yerine bkz . Belgeler - Dizin .
Dizin oluşturucuları sıfırlama ve çalıştırma
Sıfırlama, yüksek su işaretini temizler. Satır içi güncelleştirmeler yapılmadan veya mevcut içerikle birleştirilmeden, arama dizinindeki tüm belgeler tam üzerine yazma için işaretlenir. Beceri kümesi ve zenginleştirme önbelleğe alma işlemine sahip dizin oluşturucular için dizini sıfırlamak da beceri kümesini örtük olarak sıfırlar.
Gerçek çalışma, çalıştır komutuyla sıfırlamayı takip ettiğinizde gerçekleşir:
- Temel alınan kaynağı bulan tüm yeni belgeler arama dizinine eklenir.
- Hem veri kaynağında hem de arama dizininde bulunan tüm belgelerin üzerine arama dizininde yazılır.
- Beceri kümelerinden oluşturulan tüm zenginleştirilmiş içerikler yeniden oluşturulur. Zenginleştirme önbelleği (etkinse) yenilenir.
Daha önce belirtildiği gibi sıfırlama pasif bir işlemdir: Dizini yeniden oluşturmak için bir Çalıştırma isteğini izlemeniz gerekir.
Sıfırlama/çalıştırma işlemleri bir arama dizinine veya bilgi deposuna, belirli belgelere veya projeksiyonlara ve bir sıfırlama açıkça veya örtük olarak beceriler içeriyorsa önbelleğe alınmış zenginleştirmeler için geçerlidir.
Sıfırlama, oluşturma ve güncelleştirme işlemleri için de geçerlidir. Arama dizinindeki yalnız bırakılmış belgelerin silinmesini veya temizlenmesini tetiklemez. Belgeleri silme hakkında daha fazla bilgi için bkz . Belgeler - Dizin.
Dizin oluşturucuyu sıfırladıktan sonra eylemi geri alamazsınız.
Azure portalında oturum açın ve arama hizmeti sayfasını açın.
Genel Bakış sayfasında Dizin Oluşturucular sekmesini seçin.
Bir dizin oluşturucu seçin.
Sıfırla komutunu seçin ve ardından eylemi onaylamak için Evet'i seçin.
Durumu göstermek için sayfayı yenileyin. Ayrıntılarını görüntülemek için öğeyi seçebilirsiniz.
Dizin oluşturucu işlemesini başlatmak için Çalıştır'ı seçin veya bir sonraki zamanlanmış yürütmeyi bekleyin.
Becerileri sıfırlama (önizleme)
Beceri kümelerine sahip dizin oluşturucular için, yalnızca bu becerinin işlenmesini ve çıkışına bağlı olan aşağı akış becerilerinin işlenmesini zorlamak için bireysel becerileri sıfırlayabilirsiniz. Etkinleştirdiyseniz zenginleştirme önbelleği de yenilenir.
Sıfırlama Becerileri şu anda yalnızca REST'tir ve 2020-06-30-preview veya sonraki sürümlerde kullanılabilir. En son önizleme API'sini öneririz.
POST /skillsets/[skillset name]/resetskills?api-version=2024-05-01-preview
{
"skillNames" : [
"#1",
"#5",
"#6"
]
}
Yukarıdaki örnekte gösterildiği gibi tek tek beceriler belirtebilirsiniz, ancak bu becerilerin herhangi biri listelenmemiş becerilerin çıkışını gerektiriyorsa (#2 ile #4 arasında), önbellek gerekli bilgileri sağlayamadığı sürece listelenmemiş beceriler çalıştırılır. Bunun doğru olması için, 2 ile #4 arası beceriler için önbelleğe alınmış zenginleştirmelerin #1'e bağımlılığı olmamalıdır (sıfırlama için listelenmiştir).
Hiçbir beceri belirtilmezse, beceri kümesinin tamamı yürütülür ve önbelleğe alma etkinleştirilirse önbellek de yenilenir.
Gerçek işlemeyi çağırmak için Run Indexer ile izlemeyi unutmayın.
Belgeleri sıfırlama (önizleme)
Dizin Oluşturucular - Belgeleri Sıfırla, belirli belgeleri yenileyebilmeniz için belge anahtarlarının listesini kabul eder. Belirtilirse, sıfırlama parametreleri, temel alınan verilerdeki diğer değişikliklerden bağımsız olarak işlenenlerin tek belirleyicisi olur. Örneğin, son dizin oluşturucu çalıştırmasının ardından 20 blob eklendiyse veya güncelleştirildiyse, ancak yalnızca bir belgeyi sıfırlarsanız, yalnızca bu belge işlenir.
Belge başına temelinde, bu arama belgesindeki tüm alanlar veri kaynağındaki değerlerle yenilenir. Hangi alanların yenilendiğini seçip seçemezsiniz.
Belge bir beceri kümesi aracılığıyla zenginleştirilmişse ve önbelleğe alınmış veriler varsa, beceri kümesi yalnızca belirtilen belgeler için çağrılır ve yeniden işlenen belgeler için önbellek güncelleştirilir.
Bu API'yi ilk kez test ederken, aşağıdaki API'ler davranışları doğrulamanıza ve test etmenize yardımcı olabilir. Önizleme API'sini sürüm 2020-06-30-preview ve sonraki sürümleri kullanabilirsiniz. En son önizleme API'sini öneririz.
Çağrı Dizin oluşturucuları - Sıfırlama durumunu ve yürütme durumunu denetlemek için önizleme API'siyle Durum alma . Sıfırlama isteği hakkındaki bilgileri durum yanıtının sonunda bulabilirsiniz.
Çağrı Dizin oluşturucuları - Hangi belgelerin işleneceğini belirtmek için Belgeleri önizleme API'siyle sıfırlayın.
POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2024-05-01-preview { "documentKeys" : [ "1001", "4452" ] }
İstekte sağlanan belge anahtarları, arama dizinindeki değerlerdir ve bu değerler veri kaynağındaki ilgili alanlardan farklı olabilir. Anahtar değerinden emin değilseniz, değeri döndürmek için bir sorgu gönderin. Yalnızca belge anahtarı alanını döndürmek için kullanabilirsiniz
select
.Birden çok arama belgesine ayrıştırılan bloblar için (burada ayrıştırmaMode jsonLines, jsonArrays veya delimitedText olarak ayarlanır), belge anahtarı dizin oluşturucu tarafından oluşturulur ve sizin için bilinmiyor olabilir. Bu senaryoda, doğru değeri döndürmek için belge anahtarı için bir sorgu.
Belirttiğiniz belgeleri işlemek için Run Indexer'ı (herhangi bir API sürümü) çağırın. Yalnızca belirli belgeler dizine eklenir.
Son yüksek su işaretinden işlemek için Run Indexer'ı ikinci kez çağırın.
Güncelleştirilmiş değerleri denetlemek ve ayrıca değerden emin değilseniz belge anahtarlarını döndürmek için Arama Belgeleri'ni çağırın. Yanıtta hangi alanların görüneceğini sınırlamak istiyorsanız kullanın
"select": "<field names>"
.
Belge anahtarı listesinin üzerine yazma
Belgeleri Sıfırla API'sini farklı anahtarlarla birden çok kez çağırmak, yeni anahtarları belge anahtarları sıfırlama listesine ekler. API'yi overwrite
parametresi true olarak ayarlanmış şekilde çağırmak, geçerli listenin üzerine yenisiyle yazar:
POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2020-06-30-Preview
{
"documentKeys" : [
"200",
"630"
],
"overwrite": true
}
"currentState" sıfırlama durumunu denetleme
Sıfırlama durumunu denetlemek ve hangi belge anahtarlarının işlenmek üzere kuyruğa alınıldığını görmek için aşağıdaki adımları izleyin.
Önizleme API'siyle Dizin Oluşturucu Durumunu Al'ı çağır.
Önizleme API'si yanıtın
currentState
sonunda bulunan bölümü döndürür."currentState": { "mode": "indexingResetDocs", "allDocsInitialTrackingState": "{\"LastFullEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"LastAttemptedEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"NameHighWaterMark\":null}", "allDocsFinalTrackingState": "{\"LastFullEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"LastAttemptedEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"NameHighWaterMark\":null}", "resetDocsInitialTrackingState": null, "resetDocsFinalTrackingState": null, "resetDocumentKeys": [ "200", "630" ] }
"Modu" denetleyin:
Becerileri Sıfırlama için "mod" olarak ayarlanmalıdır
indexingAllDocs
(yapay zeka zenginleştirmesi aracılığıyla doldurulan alanlar açısından tüm belgeler etkilendiği için).Belgeleri Sıfırla için "mod" olarak ayarlanmalıdır
indexingResetDocs
. Dizin oluşturucu, belge sıfırlama çağrısında sağlanan tüm belge anahtarları işlenene kadar bu durumu korur ve bu süre boyunca işlem devam ederken başka dizin oluşturucu işleri yürütülmeyecektir. Belge anahtarları listesindeki tüm belgeleri bulmak için her belgenin anahtarı bulup eşleştirmesi gerekir ve veri kümesi büyükse bu işlem biraz zaman alabilir. Blob kapsayıcısı yüzlerce blob içeriyorsa ve sıfırlamak istediğiniz belgeler sonundaysa, dizin oluşturucu diğer tüm bloblar önce denetlenene kadar eşleşen blobları bulamaz.Belgeler yeniden işlendikten sonra Dizin Oluşturucu Durumunu Al'ı yeniden çalıştırın. Dizin oluşturucu moda döner
indexingAllDocs
ve sonraki çalıştırmada yeni veya güncelleştirilmiş belgeleri işler.
Sonraki adımlar
Sıfırlama API'leri, sonraki dizin oluşturucu çalıştırmasının kapsamını bilgilendirmek için kullanılır. Gerçek işleme için isteğe bağlı dizin oluşturucu çalıştırmasını çağırmanız veya zamanlanmış bir işin işi tamamlamasına izin vermeniz gerekir. Çalıştırma tamamlandıktan sonra, dizin oluşturucu ister zamanlamaya göre ister isteğe bağlı işleme olsun normal işlemeye döner.
Dizin oluşturucu işlerini sıfırlayıp yeniden çalıştırdıktan sonra, arama hizmetinden durumu izleyebilir veya kaynak günlüğü aracılığıyla ayrıntılı bilgi alabilirsiniz.