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:

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, yeterli çoğaltmaya sahip olduğunuzdan 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.

Genel bakış sayfasının arama birimlerini gösteren temel bilgiler bölümünün ekran görüntüsü.

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. Hangi ortamın kullanıldığını denetleyemez veya yapılandıramazsınız. Azure AI Search, ortamı iş oluşturma ve hizmetin dizin oluşturucu işini içerik işlemcisine taşıma özelliğine göre belirler (bazı güvenlik özellikleri çok kiracılı ortamı engeller).

Dizin oluşturucu yürütme ortamları şunlardır:

  • Arama hizmetinize özgü, arama düğümlerinde çalışan özel bir yürütme ortamı.

  • Microsoft tarafından ek ücret ödemeden yönetilen ve güvenliği sağlanan içerik işlemcilerine sahip çok kiracılı bir ortam. 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 dizin oluşturucu işi çok kiracılı ortamda yürütülür.

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 birimibaşı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 düğümler eklenir. İsteğe bağlı veya zamanlanmış yürütmede gecikme yaşıyorsanız, bunun nedeni büyük olasılıkla sistemin düğüm 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 gerekiyorsa, değişiklik algılamayı etkinleştirin ve dizin oluşturucuyu iki saatlik 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:

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 . Belge Ekleme, Güncelleştirme veya Silme.

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 . Belge Ekleme, Güncelleştirme veya Silme.

Dizin oluşturucuyu sıfırladıktan sonra eylemi geri alamazsınız.

  1. Azure portalında oturum açın ve arama hizmeti sayfasını açın.

  2. Genel Bakış sayfasında Dizin Oluşturucular sekmesini seçin.

  3. Bir dizin oluşturucu seçin.

  4. Sıfırla komutunu seçin ve ardından eylemi onaylamak için Evet'i seçin.

  5. Durumu göstermek için sayfayı yenileyin. Ayrıntılarını görüntülemek için öğeyi seçebilirsiniz.

  6. Dizin oluşturucu işlemesini başlatmak için Çalıştır'ı seçin veya bir sonraki zamanlanmış yürütmeyi bekleyin.

    Sıfırla komutunun vurgulandığı dizin oluşturucu yürütme portalı sayfasının ekran görüntüsü.

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.

Becerileri Sıfırlama şu anda yalnızca REST'tir, veya daha sonraki sürümlerde api-version=2020-06-30-Preview kullanılabilir.

POST /skillsets/[skillset name]/resetskills?api-version=2020-06-30-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)

Belgeleri Sıfırla API'si, 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:

  1. Sıfırlama durumunu ve yürütme durumunu denetlemek için API sürümü api-version=2020-06-30-Preview veya üzeri ile Dizin Oluşturucu Durumunu Al'ı arayın. Sıfırlama isteği hakkındaki bilgileri durum yanıtının sonunda bulabilirsiniz.

  2. hangi belgelerin işleneceğini belirtmek için API sürümü api-version=2020-06-30-Preview veya üzeri ile Belgeleri Sıfırlama çağrısı yapın.

    POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2020-06-30-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.

  3. Belirttiğiniz belgeleri işlemek için Run Indexer'ı (herhangi bir API sürümü) çağırın. Yalnızca belirli belgeler dizine eklenir.

  4. Son yüksek su işaretinden işlemek için Run Indexer'ı ikinci kez çağırın.

  5. 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.

  1. veya üzeri ile api-version=06-30-2020-Preview Dizin Oluşturucu Durumunu Al'ı arayın.

    Ö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"
        ]
    }
    
  2. "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.

  3. 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.