Azure Yapay Zeka Arama'te dizin oluşturma

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, bir arama dizini için şema tanımlama ve bir arama hizmetine gönderme adımlarını öğrenin. Dizin oluşturmak, arama hizmetinizdeki fiziksel veri yapılarını oluşturur. Dizin mevcut olduğunda, dizini ayrı bir görev olarak yükleyin.

Önkoşullar

  • Bir Azure aboneliği. Ücretsiz bir tane oluşturun.

  • Azure Yapay Zeka Arama hizmeti, herhangi bir bölge ve katman, ancak rol tabanlı erişim için faturalanabilir bir katman (Temel veya üzeri) olmalıdır.

  • Dizin oluşturma izinleri: Anahtar tabanlı kimlik doğrulaması için Arama Hizmeti Katkıda Bulunanı rolü veya yönetici API anahtarı .

  • Kaynak verilerinizde, dizinde belge anahtarı olarak kullanılabilecek benzersiz bir alan.

  • Veri şemanızı anlama. Alanları aranabilir, erişilebilir, filtrelenebilir, görselleştirilebilir ve sıralanabilir hale getirme hakkında tasarım kılavuzu için şema denetim listesine bakın.

Dizin oluşturma

Dizini oluşturmaya hazır olduğunuzda, isteği gönderebilen bir arama istemcisi kullanın. Erken geliştirme ve kavram kanıtı testi için Azure portalını veya REST API'lerini kullanabilirsiniz, aksi takdirde Azure SDK'larını kullanmak yaygın bir durumdur.

Geliştirme sırasında, sık yapılan yeniden yapımları planlarınıza dahil edin. Fiziksel yapılar hizmette oluşturulduğundan, birçok değişiklik için dizinlerin bırakılıp yeniden oluşturulması gerekir. Yeniden derlemelerin daha hızlı gerçekleşmesi için verilerinizin bir alt kümesiyle çalışmayı düşünebilirsiniz.

Azure portalı aracılığıyla dizin tasarımı, sayısal alanlarda tam metin arama özelliklerine izin verme gibi belirli veri türleri için gereksinimleri ve şema kurallarını zorunlu kılar.

  1. Azure portalında arama hizmetinize gidin.

  2. Yer olup olmadığını denetleyin. Arama hizmetleri, fiyatlandırma katmanına göre değişen en fazla dizin sayısına tabidir. İkinci bir dizin için yeriniz olduğundan emin olun.

  3. Arama hizmetine Genel Bakış sayfasında aşağıdaki seçeneklerden birini belirleyin:

    • Dizin ekleme: Dizin şemasını belirtmek için eklenmiş bir düzenleyici.
    • Verileri içeri aktarma: Veri kaynağı, dizin oluşturucu ve tamamlanmış dizin oluşturan sihirbaz. Sihirbaz ayrıca verileri yükler. Uçtan uca iş akışına ihtiyacınız yoksa bunun yerine Dizin ekle'yi kullanın.

    Dizin ekleme seçeneklerinin ekran görüntüsü.

İpucu

Azure portalında bir dizin oluşturduktan sonra JSON gösterimini kopyalayıp uygulama kodunuza ekleyebilirsiniz.

Dizin oluşturmayı doğrulama

Bir dizin oluşturduktan sonra, arama hizmetinizdeki dizinleri listeleyerek dizinin var olduğunu doğrulayın.

  1. Azure portalında arama hizmetinize gidin.

  2. Sol bölmeden Arama yönetimi>Dizinleri'ni seçin.

  3. Yeni dizininizin listede göründüğünü onaylayın. Bu seçeneği görmüyorsanız sayfayı yenileyin.

Belge anahtarları

Arama dizini oluşturmanın iki gereksinimi vardır: dizinin arama hizmetinde benzersiz bir adı ve belge anahtarı olmalıdır. Bir alandaki boole key özniteliği, belge anahtarını hangi alanın sağladığını belirtmek için true olarak ayarlanabilir.

Belge anahtarı, arama belgesinin benzersiz tanımlayıcısı ve arama belgesi ise bir şeyi tamamen açıklayan bir alan koleksiyonudur. Örneğin, bir film veri kümesini dizine alıyorsanız, arama belgesi tek bir filmin başlığını, türünü ve süresini içerir. Film adları bu veri kümesinde benzersizdir, bu nedenle belge anahtarı olarak film adını kullanabilirsiniz.

Azure Yapay Zeka Arama'te belge anahtarı bir dizedir ve dizine eklenecek içeriği sağlayan veri kaynağındaki benzersiz değerlerden kaynaklanmalıdır. Genel bir kural olarak, arama hizmeti anahtar değerleri oluşturmaz, ancak bazı senaryolarda (Azure tablo dizin oluşturucu gibi) var olan değerleri sentezler ve dizine alınan belgeler için benzersiz bir anahtar oluşturur. Başka bir senaryo, öbeklenmiş veya bölümlenmiş veriler için bire çok dizin oluşturmadır ve bu durumda her öbek için belge anahtarları oluşturulur.

Yeni ve güncelleştirilmiş içeriğin dizine alındığı artımlı dizin oluşturma sırasında, yeni anahtarlara sahip gelen belgeler eklenirken, dizin alanlarının null veya doldurulmuş olmasına bağlı olarak, var olan anahtarlara sahip gelen belgeler birleştirilir veya üzerine yazılır.

Belge anahtarlarıyla ilgili önemli noktalar şunlardır:

  • Anahtar alanındaki değerlerin uzunluk üst sınırı 1.024 karakterdir.
  • Her dizinde tam olarak bir üst düzey alan anahtar alanı olarak seçilmeli ve türünde Edm.Stringolmalıdır.
  • Özniteliğin key varsayılan değeri basit alanlar için false, karmaşık alanlar için null değeridir.

Önemli alanlar, belgeleri doğrudan aramak ve belirli belgeleri güncelleştirmek veya silmek için kullanılabilir. Belgeler aranırken veya dizinlenirken anahtar alanların değerleri büyük-küçük harfe duyarlı biçimde işlenir. Ayrıntılar için bkz. GET Belgesi (REST) ve Dizin Belgeleri (REST).

Şema denetim listesi

Arama dizininizin tasarım kararlarına yardımcı olması için bu denetim listesini kullanın.

  1. Dizin ve alan adlarının, adlandırma kurallarına uyması için adlandırma kurallarını gözden geçirin.

  2. Desteklenen veri türlerini gözden geçirin. Veri türü, alanın nasıl kullanıldığını etkiler. Örneğin sayısal içerik filtrelenebilir ancak tam metin aranamaz. En yaygın veri türü olan Edm.String, tam metin arama motoru kullanılarak belirteçlere ayrılan ve sorgulanabilir metin haline getirilen aranabilir metindir. Vektör alanı için en yaygın veri türü, Edm.Single ancak diğer türleri de kullanabilirsiniz.

  3. Dizin için en fazla 4.000 karakterlik bir açıklama sağlayın. Bir sistemin birkaç dizine erişmesi ve açıklamaya göre bir karar vermesi gerektiğinde bu insan tarafından okunabilir metin çok değerlidir. Ç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çıklamaya dayalı olabilir.

  4. Belge anahtarını tanımlayın. Belge anahtarı bir dizin gereksinimidir. Benzersiz değerler içeren bir kaynak veri alanından doldurulan tek bir dize alanıdır. Örneğin Blob Depolama'dan dizin oluştururken meta veri depolama yolu genellikle belge anahtarı olarak kullanılır çünkü kapsayıcıdaki her blobu benzersiz şekilde tanımlar.

  5. Veri kaynağınızda dizinde aranabilir içeriğe katkıda bulunan alanları belirleyin.

    Aranabilir nonvector içeriği, tam metin arama altyapısı kullanılarak sorgulanan kısa veya uzun dizeler içerir. İçerik ayrıntılıysa (küçük tümcecikler veya daha büyük öbekler), metnin nasıl belirteçlere ayrıldığına bakmak için farklı çözümleyicilerle denemeler yapın.

    Aranabilir vektör içeriği, matematiksel bir gösterim olarak var olan resimler veya metinler (herhangi bir dilde) olabilir. Vektör alanlarını küçültmek için dar veri türlerini veya vektör sıkıştırmayı kullanabilirsiniz.

    Alanlarda ayarlanan öznitelikler, retrievable veya filterable gibi, hem arama davranışlarını hem de arama hizmetindeki dizininizin fiziksel gösterimini belirler. Alanların nasıl özniteliklendirilmesi gerektiğini belirlemek, birçok geliştirici için yinelemeli bir süreçtir. Yinelemeleri hızlandırmak için örnek verilerle başlayın, böylece kolayca bırakıp yeniden oluşturabilirsiniz.

  6. Filtre olarak hangi kaynak alanların kullanılabileceğini belirleyin. Sayısal içerik ve kısa metin alanları, özellikle de yinelenen değerler içerenler iyi seçeneklerdir. Filtrelerle çalışırken şunları unutmayın:

    • Filtreler vektör ve nonvector sorgularında kullanılabilir, ancak filtrenin kendisi dizininizdeki insan tarafından okunabilir (nonvector) alanlara uygulanır.

    • Filtrelenebilir alanlar isteğe bağlı olarak çok yönlü gezinmede kullanılabilir.

    • Filtrelenebilir alanlar rastgele sırayla döndürülür ve ilgi puanlamasından geçilmez, bu nedenle bunları da sıralanabilir hale getirebilirsiniz.

  7. Vektör alanları için bir vektör arama yapılandırması ve gezinti yolları oluşturmak ve ekleme alanını doldurmak için kullanılan algoritmaları belirtin. Daha fazla bilgi için bkz . Vektör alanları ekleme.

    Vektör alanlarının, vektör olmayan alanların sahip olmadığı hangi algoritmaların kullanılacağı ve vektör sıkıştırması gibi ek özellikleri vardır.

    Vektör alanları sıralama, filtreleme ve model oluşturma gibi vektör verilerinde yararlı olmayan öznitelikleri atlar.

  8. Seçici olmayan alanlar için varsayılan çözümleyicinin ("analyzer": null) mi yoksa farklı bir çözümleyicinin mi kullanılacağını belirleyin. Çözümleyiciler, dizin oluşturma ve sorgu yürütme sırasında metin alanlarını belirteçlere ayırmak için kullanılır.

    Çok dilli dizeler için bir dil çözümleyicisi düşünün.

    Hecelenmiş dizeler veya özel karakterler için özel çözümleyicileri göz önünde bulundurun. Bir örnek, bir alanın tüm içeriğini tek bir belirteç olarak ele alan anahtar sözcüktür . Bu davranış posta kodları, kimlikler ve bazı ürün adları gibi veriler için yararlıdır. Daha fazla bilgi için bkz. Kısmi terim araması ve özel karakterler içeren desenler.

Not

Tam metin araması, dizin oluşturma sırasında belirteçlere ayrılan terimler üzerinden gerçekleştirilir. Sorgularınız beklediğiniz sonuçları döndüremezse, aradığınız dizenin gerçekten var olduğunu doğrulamak için belirteç oluşturma testi. Çeşitli çözümleyiciler için belirteçlerin nasıl üretildiğini görmek üzere dizelerde farklı çözümleyiciler deneyebilirsiniz.

Alan tanımlarını yapılandırma

Alanlar koleksiyonu, arama belgesinin yapısını tanımlar. Tüm alanların bir adı, veri türü ve öznitelikleri vardır.

Bir alanı aranabilir, filtrelenebilir, sıralanabilir veya modellenebilir olarak ayarlamak dizin boyutu ve sorgu performansı üzerinde etkili olur. Sorgu ifadelerinde başvurulmayan alanlarda bu öznitelikleri ayarlamayın.

Bir alan aranabilir, filtrelenebilir, sıralanabilir veya modellenebilir olarak ayarlanmadıysa, hiçbir sorgu ifadesinde alana başvurulamaz. Bu, sorgularda kullanılmayan ancak arama sonuçlarında gerekli olan alanlar için tercih edilir.

REST API'leri, Azure portalındaki Verileri içeri aktarma sihirbazı tarafından da kullanılan veri türlerine göre varsayılan ilişkilendirmeye sahiptir. Azure SDK'larının varsayılan değerleri yoktur, ancak dizeler için SearchableField ve temel öğeler için SimpleField gibi özellikleri ve davranışları içeren alan alt sınıfları vardır.

REST API'leri için varsayılan alan ilişkilendirmeleri aşağıdaki tabloda özetlenir.

Veri türü Aranabilir Erişilebilir Filtrelenebilir Modellenebilir Sıralanabilir Saklı
Edm.String
Collection(Edm.String)
Edm.Boolean
Edm.Int32, Edm.Int64, Edm.Double
Edm.DateTimeOffset
Edm.GeographyPoint
Edm.ComplexType
Collection(Edm.Single) ve diğer tüm vektör alanı türleri ✅ veya ❌

Dize alanları isteğe bağlı olarak çözümleyiciler ve eş anlamlı eşlemelerle de ilişkilendirilebilir. Filtrelenebilir, sıralanabilir veya modellenebilir türdeki Edm.String alanlar en fazla 32 kilobayt uzunluğunda olabilir. Bunun nedeni, bu tür alanların değerlerinin tek bir arama terimi olarak kabul edilmesi ve Azure Yapay Zeka Arama'teki bir terimin uzunluk üst sınırının 32 kilobayt olmasıdır. Tek bir dize alanında bundan daha fazla metin depolamanız gerekiyorsa, dizin tanımınızda filtrelenebilir, sıralanabilir ve gruplandırılabilir olarak false açıkça ayarlamanız gerekir.

Vektör alanları boyutlar ve vektör profilleriyle ilişkilendirilmelidir. Azure portalında Verileri içeri aktarma sihirbazını kullanarak vektör alanını eklerseniz, geri getirilebilir varsayılan olarak doğru olur. REST API kullanıyorsanız bu doğru değildir.

Alan öznitelikleri aşağıdaki tabloda açıklanmıştır.

Öznitelik Tanım
Adı Gerekli. Dizin veya üst alanın alan koleksiyonu içinde benzersiz olması gereken alanın adını ayarlar.
Tip Gerekli. Alanın veri türünü ayarlar. Alanlar basit veya karmaşık olabilir. Basit alanlar, metin veya Edm.String tamsayılar gibi Edm.Int32 temel türlerdedir. Karmaşık alanlar , kendileri basit veya karmaşık olan alt alanlara sahip olabilir. Bu, nesneleri ve nesne dizilerini modellemenize olanak tanır ve bu da çoğu JSON nesne yapısını dizininize yüklemenize olanak tanır. Desteklenen türlerin tam listesi için bkz. Desteklenen veri türleri.
anahtar Gerekli. Bir alanın değerlerinin dizindeki belgeleri benzersiz olarak tanımladığını belirlemek için bu özniteliği true olarak ayarlayın. Ayrıntılar için bu makaledeki Belge anahtarları bölümüne bakın.
alınabilir Alanının bir arama sonucunda döndürülüp döndürülemeyeceğini gösterir. Bir alanı filtre, sıralama veya puanlama mekanizması olarak kullanmak ancak alanın son kullanıcıya görünür olmasını istemiyorsanız bu özniteliği false olarak ayarlayın. Bu öznitelik true anahtar alanlar ve karmaşık alanlar için olmalıdır null . Bu öznitelik mevcut alanlarda değiştirilebilir. Ayarlanabilirliği true olarak ayarlamak, dizin depolama gereksinimlerinde herhangi bir artışa neden olmaz. Varsayılan, true basit alanlar ve null karmaşık alanlar içindir.
aranabilir Alanın tam metin aranabilir olup olmadığını ve arama sorgularında başvurulabileceğini gösterir. Bu, dizin oluşturma sırasında sözcük bölme gibi işlemlerin yapıldığı leksik analizden geçtiği anlamına gelir. Aranabilir bir alanı "Güneşli gün" gibi bir değere ayarlarsanız, dahili olarak "güneşli" ve "gün" belirteçlerine göre normalleştirilir. Bu, bu terimler için tam metin aramaları sağlar. veya Edm.String türündeki Collection(Edm.String) alanlar varsayılan olarak aranabilir. Bu öznitelik false diğer dize olmayan veri türlerinin basit alanları için ve karmaşık alanlar için olmalıdır null .

Azure Yapay Zeka Arama bu alanların içeriğini işlediğinden ve bunları performans araması için yardımcı veri yapılarında düzenlediğinden aranabilir bir alan dizininizde fazladan alan tüketir. Dizininizde yer kazanmak istiyorsanız ve aramalara dahil edilecek bir alana ihtiyacınız yoksa, aranabilir falseolarak ayarlayın. Ayrıntılar için bkz . Azure Yapay Zeka Arama'te tam metin arama nasıl çalışır?
filtrelenebilir Alanının $filter sorgularda başvurulmasının etkinleştirilip etkinleştirilmemesini gösterir. Filtrelenebilir, dizelerin ele alınma şekli bakımından aranabilirden farklıdır. Edm.String veya Collection(Edm.String) türündeki filtrelenebilir alanlar sözcük temelli analizden geçirilmez, bu nedenle karşılaştırmalar yalnızca tam eşleşmeler içindir. Örneğin, böyle bir alanı f "Güneşli gün" olarak ayarlarsanız eşleşme $filter=f eq 'sunny' bulunmaz, ancak $filter=f eq 'Sunny day' bulur. Bu öznitelik karmaşık alanlar için olmalıdır null . Varsayılan, true basit alanlar ve null karmaşık alanlar içindir. Dizin boyutunu küçültmek için, bu özniteliği filtreleme yapmayacağınız alanlarda false olarak ayarlayın.
sıralanabilir alana ifadelerde $orderby başvurulmasının etkinleştirilip etkinleştirilmeymeyeceğini gösterir. Varsayılan olarak Azure Yapay Zeka Arama sonuçları puana göre sıralar, ancak birçok deneyimde kullanıcılar belgelerdeki alanlara göre sıralamak ister. Basit bir alan yalnızca tek değerliyse sıralanabilir (üst belge kapsamında tek bir değere sahiptir).

Basit koleksiyon alanları çok değerli olduğundan sıralanamaz. Karmaşık koleksiyonların basit alt alanları da çok değerlidir ve bu nedenle sıralanamaz. Bu, ister doğrudan bir üst alan ister bir atalar alanı olsun, karmaşık koleksiyon budur. Karmaşık alanlar sıralanabilir olamaz ve sıralanabilir özniteliği bu tür alanlar için olmalıdır null . Sıralanabilir için varsayılan değer true , tek değerli basit alanlar, false çok değerli basit alanlar ve null karmaşık alanlar içindir.
fasetlenebilir Facet sorgularında alanın referans alınıp alınmayacağını gösterir. Genellikle kategoriye göre isabet sayısını içeren arama sonuçlarının bir sunumunda kullanılır (örneğin, dijital kameraları arayın ve markaya göre, megapiksellere, fiyata vb. göre isabetleri görün). Bu öznitelik karmaşık alanlar için olmalıdır null . Edm.GeographyPoint veya Collection(Edm.GeographyPoint) türündeki alanlar facetable olamaz. Varsayılan, true diğer tüm basit alanlar içindir. Dizin boyutunu küçültmek için bu özniteliği yüzey oluşturmada kullanmayacağınız alanlarda false olarak ayarlayın.
çözümleyici Dizin oluşturma ve sorgu işlemleri sırasında dizeleri belirteç haline getirme için sözcük temelli çözümleyiciyi ayarlar. Bu özellik için geçerli değerler arasında dil çözümleyicileri, yerleşik çözümleyiciler ve özel çözümleyiciler bulunur. Varsayılan değer: standard.lucene. Bu öznitelik yalnızca aranabilir dize alanlarıyla kullanılabilir ve searchAnalyzer veya indexAnalyzer ile birlikte ayarlanamaz. Çözümleyici seçilip alan dizinde oluşturulduktan sonra, bu alan için değişiklik yapılamaz. null Karmaşık alanlar olmalıdır.
aramaAnalizörü Dizin oluşturma ve sorgular için farklı sözcük temelli çözümleyiciler belirtmek üzere bu özelliği indexAnalyzer ile birlikte ayarlayın. Bu özelliği kullanırsanız çözümleyici olarak null ayarlayın ve indexAnalyzer öğesinin izin verilen bir değere ayarlandığından emin olun. Bu özellik için geçerli değerler yerleşik çözümleyicileri ve özel çözümleyicileri içerir. Bu öznitelik yalnızca aranabilir alanlarla kullanılabilir. Arama çözümleyicisi mevcut bir alanda güncelleştirilebilir çünkü yalnızca sorgu zamanında kullanılır. Karmaşık alanlar için olmalıdır null .
indeks analizörü Dizin oluşturma ve sorgular için farklı sözcük temelli çözümleyiciler belirtmek üzere searchAnalyzer ile birlikte bu özelliği ayarlayın. Bu özelliği kullanırsanız çözümleyici olarak null ayarlayın ve searchAnalyzer öğesinin izin verilen bir değere ayarlandığından emin olun. Bu özellik için geçerli değerler yerleşik çözümleyicileri ve özel çözümleyicileri içerir. Bu öznitelik yalnızca aranabilir alanlarla kullanılabilir. Bir kez dizin çözümleyicisi seçildiğinde, alan için değiştirilemez. Karmaşık alanlar için olmalıdır null .
eş anlam haritaları Bu alanla ilişkilendirilecek eş anlamlılar haritalarının isimlerinin listesi. Bu öznitelik yalnızca aranabilir alanlarla kullanılabilir. Şu anda alan başına yalnızca bir eş anlamlı eşleme desteklenir. Bir alana eş anlamlı eşlem atamak, bu alanı hedefleyen sorgu terimlerinin eş anlamlı eşlemedeki kurallar kullanılarak sorgu zamanında genişletilmesini sağlar. Bu öznitelik mevcut alanlarda değiştirilebilir. null olmalı veya karmaşık alanlar için boş bir koleksiyon olmalıdır.
Alanları Bu alan Edm.ComplexType veya Collection(Edm.ComplexType) türünde ise, alt alanların listesi. Basit alanlar için null veya boş olmalıdır. Alt alanları nasıl ve ne zaman kullanacağınız hakkında daha fazla bilgi için bkz . Azure Yapay Zeka Arama'te karmaşık veri türlerini modelleme.

Mevcut dizinlerde izin verilen güncelleştirmeler

Dizin Oluştur, arama hizmetinizde fiziksel veri yapılarını (dosyalar ve ters dizinler) oluşturur. Dizin oluşturulduktan sonra, Dizin Oluştur veya Güncelleştir'i kullanarak değişiklikleri etkileyebilme olanağınız, değişikliklerinizin bu fiziksel yapıları geçersiz kılıp geçersiz kılmadığına bağlı olarak değişir. Alan dizininizde oluşturulduktan sonra alan özniteliklerinin çoğu değiştirilemez.

Uygulama kodundaki değişim oranını en aza indirmek için, arama dizinine kararlı bir başvuru görevi görecek bir dizin takma adı oluşturabilirsiniz. Kodunuzu dizin adlarıyla güncelleştirmek yerine, daha yeni dizin sürümlerine işaret eden bir dizin diğer adını güncelleştirebilirsiniz.

Tasarım sürecindeki değişim oranını en aza indirmek için aşağıdaki tabloda şemada hangi öğelerin sabit ve esnek olduğu açıklanmaktadır. Sabit bir öğeyi değiştirmek için dizin yeniden derlemesi gerekirken, esnek öğeler herhangi bir zamanda fiziksel uygulamayı etkilemeden değiştirilebilir. Daha fazla bilgi için Dizini güncelleme veya yeniden oluşturma konusuna bakın.

Öğe Güncelleştirilebilir mi?
Veri Akışı Adı Hayır
Anahtar Hayır
Alan adları ve türleri Hayır
Alan öznitelikleri (aranabilir, filtrelenebilir, modellenebilir, sıralanabilir) Hayır
Alan özniteliği (alınabilir) Evet
Depolanan (vektörler için geçerlidir) Hayır
Analyzer Dizine özel çözümleyiciler ekleyebilir ve değiştirebilirsiniz. Dizgi alanlarındaki çözümleyici atamalarına ilişkin, yalnızca searchAnalyzer değiştirilebilir. Diğer tüm atamalar ve değişiklikler için yeniden oluşturulma gerekir.
Puanlama modelleri Evet, yeniden oluşturma olmadan puanlama profilleri oluşturabilir ve düzenleyebilirsiniz.
Öneri sistemleri Hayır
çıkış noktaları arası kaynak paylaşımı (CORS) Evet
Şifreleme Evet, mevcut bir şifreleme tanımının tüm bölümlerini güncelleştirebilirsiniz.
Eş anlamlı haritalar Evet, yeniden derleme olmadan eş anlamlı eşlemeleri oluşturabilir ve düzenleyebilirsiniz.
Anlamsal yapılandırma Evet, yeniden derleme olmadan anlamsal yapılandırmalar oluşturabilir ve düzenleyebilirsiniz.

Çapraz kaynak sorguları için corsOptions ayarla

Dizin şemaları, corsOptions ayarını belirlemek için bir bölüm içerir. Varsayılan olarak, tarayıcılar tüm çıkış noktaları arası istekleri engellediğinden istemci tarafı JavaScript herhangi bir API çağıramaz. Dizininizde çıkış noktaları arası sorgulara izin vermek için corsOptions özniteliğini ayarlayarak CORS'yi (Çıkış Noktaları Arası Kaynak Paylaşımı) etkinleştirin. Güvenlik nedeniyle yalnızca sorgu API'leri CORS'yi destekler.

"corsOptions": {
  "allowedOrigins": [
    "*"
  ],
  "maxAgeInSeconds": 300

CORS için aşağıdaki özellikler ayarlanabilir:

  • allowedOrigins (gerekli): Bu, dizininize erişmesine izin verilen çıkış noktalarının listesidir. Bu kaynaklardan sunulan JavaScript kodunun dizininizi sorgulamasına izin verilir (çağıranın geçerli bir anahtar sağladığını veya izinlere sahip olduğunu varsayarsak). Her çıkış noktası genellikle formdadır protocol://<fully-qualified-domain-name>:<port> ancak <port> genellikle atlanır. Daha fazla bilgi için bkz . Çıkış noktaları arası kaynak paylaşımı (Wikipedia).

    Tüm kökenlere erişime izin vermek istiyorsanız, *'yi allowedOrigins dizisine tek bir öğe olarak ekleyin. Bu, üretim arama hizmetleri için önerilen bir uygulama değildir, ancak genellikle geliştirme ve hata ayıklama için yararlıdır.

  • maxAgeInSeconds (isteğe bağlı): Tarayıcılar, CORS denetim öncesi yanıtlarını önbelleğe alma süresini (saniye cinsinden) belirlemek için bu değeri kullanır. Bu negatif olmayan bir tamsayı olmalıdır. Daha uzun bir önbellek süresi daha iyi performans sağlar, ancak CORS ilkesinin geçerlilik süresi uzatır. Bu değer ayarlı değilse, varsayılan olarak beş dakikalık bir süre kullanılır.

Sonraki adımlar

Dizine eklenebilen özel özellikler hakkında bilgi edinmek için aşağıdaki bağlantıları kullanın:

Bir dizini yüklemek veya güncelleştirmek için şu bağlantıları kullanın: