Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veyadizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure AI Search'te arama dizini , dizin oluşturma, aracı arama, tam metin arama, vektör araması, karma arama ve filtrelenmiş sorgular için arama motoru tarafından kullanılabilen aranabilir içeriğinizdir. Dizin bir şema tarafından tanımlanır ve ikinci adım olarak veri alımıyla birlikte arama hizmetine kaydedilir. Dizine alınmış içerik, modern arama uygulamalarında beklenen milisaniyelik yanıt süreleri için gerekli olan birincil dış veri depolarınızın dışında arama hizmetinizde bulunur. Dizin oluşturucu temelli dizin oluşturma senaryoları dışında, arama hizmeti hiçbir zaman dış kaynak verilerinize bağlanmaz veya bu verileri sorgulamaz.
Bu makale, arama dizini oluşturma ve yönetmeye yönelik temel kavramları kapsar; örneğin:
- İçerik (belgeler ve şema)
- Fiziksel veri yapısı
- Basic operations
Tip
Hemen başlamak ister misiniz? Bkz. Arama dizini oluşturma.
Arama dizini şeması
Azure AI Search'te dizinler arama belgeleri içerir. Kavramsal olarak, belge dizininizdeki aranabilir verilerin tek bir birimidir. Örneğin, bir satıcının her ürün için bir belgesi olabilir, üniversitenin her sınıf için bir belgesi olabilir, bir seyahat sitesinde her otel ve hedef için bir belge vb. olabilir. Bu kavramları daha tanıdık veritabanı eşdeğerleriyle eşleme: arama dizini bir tabloya eşittir ve belgeler kabaca tablodaki satırlarla eşdeğerdir.
Bir belgenin yapısı, aşağıdaki örnekte gösterildiği gibi dizin şeması tarafından belirlenir. "alanlar" koleksiyonu genellikle bir dizinin en büyük bölümüdür; burada her alan adlandırılır, bir veri türü atanır ve nasıl kullanıldığını belirleyen izin verilen davranışlarla ilişkilendirilir.
{
"name": "name_of_index, unique across the service",
"description" : "Health plan coverage for standard and premium plans for Northwind and Contoso employees."
"fields": [
{
"name": "name_of_field",
"type": "Edm.String | Collection(Edm.String) | Collection(Edm.Single) | Edm.Int32 | Edm.Int64 | Edm.Double | Edm.Boolean | Edm.DateTimeOffset | Edm.GeographyPoint",
"searchable": true (default where applicable) | false (only Edm.String and Collection(Edm.String) fields can be searchable),
"filterable": true (default) | false,
"sortable": true (default where applicable) | false (Collection(Edm.String) fields cannot be sortable),
"facetable": true (default where applicable) | false (Edm.GeographyPoint fields cannot be facetable),
"key": true | false (default, only Edm.String fields can be keys),
"retrievable": true (default) | false,
"analyzer": "name_of_analyzer_for_search_and_indexing", (only if 'searchAnalyzer' and 'indexAnalyzer' are not set)
"searchAnalyzer": "name_of_search_analyzer", (only if 'indexAnalyzer' is set and 'analyzer' is not set)
"indexAnalyzer": "name_of_indexing_analyzer", (only if 'searchAnalyzer' is set and 'analyzer' is not set)
"normalizer": "name_of_normalizer", (applies to fields that are filterable)
"synonymMaps": "name_of_synonym_map", (optional, only one synonym map per field is currently supported)
"dimensions": "number of dimensions used by an embedding models", (applies to vector fields only, of type Collection(Edm.Single))
"vectorSearchProfile": "name_of_vector_profile" (indexes can have many configurations, a field can use just one)
}
],
"suggesters": [ ],
"scoringProfiles": [ ],
"analyzers":(optional)[ ... ],
"charFilters":(optional)[ ... ],
"tokenizers":(optional)[ ... ],
"tokenFilters":(optional)[ ... ],
"defaultScoringProfile": (optional) "...",
"corsOptions": (optional) { },
"encryptionKey":(optional){ },
"semantic":(optional){ },
"vectorSearch":(optional){ }
}
Diğer öğeler kısa olması için daraltılır, ancak aşağıdaki bağlantılar ayrıntıları sağlar:
- önericiler , otomatik tamamlama gibi önceden yazılan sorguları destekler.
- scoringProfiles , ilgi ayarı için kullanılır.
- çözümleyiciler , dizeleri dil kurallarına veya çözümleyici tarafından desteklenen diğer özelliklere göre belirteçler halinde işlemek için kullanılır.
- corsOptions veya Çıkış noktaları arası uzaktan betik (CORS), farklı etki alanlarından istekler veren uygulamalar için kullanılır.
- encryptionKey , dizindeki hassas içeriğin çift şifrelemesini yapılandırıyor.
- semantik , tam metin ve karma aramada anlamsal yeniden boyutlandırmayı yapılandırır.
- vectorSearch , vektör alanlarını ve sorgularını yapılandırıyor.
Field definitions
Arama belgesi, Dizin Oluşturma isteğinin gövdesindeki "alanlar" koleksiyonu tarafından tanımlanır. Belge tanımlama (anahtarlar), aranabilir metinleri depolamak için alanlar ve destekleyici filtreler, modeller ve sıralama alanları gerekir. Ayrıca, bir kullanıcının hiç görmediği veriler için alanlara da ihtiyacınız olabilir. Örneğin, bir puanlama profilinde arama puanını artırmak için kullanabileceğiniz kar marjları veya pazarlama promosyonları alanlarını isteyebilirsiniz.
Gelen veriler doğası gereği hiyerarşikse, bunu iç içe yapılar için kullanılan karmaşık bir tür olarak bir dizin içinde temsil edebilirsiniz. Oteller adlı yerleşik örnek veri kümesi, her otelle bire bir ilişkisi olan bir Adres (birden çok alt alan içerir) ve her otelle birden çok odanın ilişkilendirildiği Rooms karmaşık koleksiyonu kullanan karmaşık türleri gösterir.
Field attributes
Alan öznitelikleri, alanın tam metin aramasında, modelli gezintide, sıralama işlemlerinde vb. nasıl kullanıldığını belirler.
Dize alanları genellikle "aranabilir" ve "alınabilir" olarak işaretlenir. Arama sonuçlarını daraltmak için kullanılan alanlar arasında "sıralanabilir", "filtrelenebilir" ve "modellenebilir" yer alır.
| Attribute | Description |
|---|---|
| "searchable" | Tam metin veya vektör aranabilir. Metin alanları, dizin oluşturma sırasında sözcük kesme gibi sözcük temelli analizlere tabidir. Aranabilir bir alanı "güneşli gün" gibi bir değere ayarlarsanız, dahili olarak "güneşli" ve "gün" belirteçlerine ayrılır. Ayrıntılar için bkz. Tam metin araması nasıl çalışır? |
| "filterable" | $filter sorgularında başvurulur. Türünde Edm.String filtrelenebilir alanlar veya Collection(Edm.String) sözcük bölme işlemine tabi tutulmaz, bu nedenle karşılaştırmalar yalnızca tam eşleşmeler içindir. Örneğin, f alanını "güneşli gün" olarak ayarlarsanız eşleşme $filter=f eq 'sunny' bulunmaz ancak $filter=f eq 'sunny day' bulur. |
| "sortable" | Varsayılan olarak sistem sonuçları puana göre sıralar, ancak belgelerdeki alanlara göre sıralamayı yapılandırabilirsiniz. Tür Collection(Edm.String) alanları "sıralanabilir" olamaz. |
| "facetable" | Genellikle kategoriye göre (örneğin, belirli bir şehirdeki oteller) isabet sayısını içeren bir arama sonuçları sunumunda kullanılır. Bu seçenek türünde Edm.GeographyPointalanlarla kullanılamaz. Filtrelenebilir, "sıralanabilir" veya "modellenebilir" türdeki Edm.String alanlar en fazla 32 kilobayt uzunluğunda olabilir. Ayrıntılar için bkz. Dizin Oluşturma (REST API’si). |
| "key" | Dizin içindeki belgeler için benzersiz tanımlayıcı. Anahtar alan olarak tam olarak bir alan seçilmeli ve Edm.String türünde olmalıdır. |
| "retrievable" | Alanın bir arama sonucunda döndürülüp döndürülemeyeceğini belirler. Bu, bir alanı (kar marjı gibi) filtre, sıralama veya puanlama mekanizması olarak kullanmak istediğinizde, ancak alanın son kullanıcıya görünür olmasını istemediğinizde kullanışlıdır. Bu öznitelik, true alanları için key olmalıdır. |
İstediğiniz zaman yeni alanlar ekleyebilseniz de, dizinin ömrü boyunca mevcut alan tanımları kilitlenir. Bu nedenle geliştiriciler genellikle basit dizinler oluşturmak, fikirleri test etmek veya bir ayarı aramak için Azure portalı sayfalarını kullanmak için Azure portalını kullanır. Dizini kolayca yeniden derleyebilmeniz için kod tabanlı bir yaklaşım izlerseniz, bir dizin tasarımı çerçevesinde sık sık yapılan yineleme daha verimli olur.
Note
Dizin oluşturmak için kullandığınız API'ler farklı varsayılan davranışlara sahiptir. REST API'leri için çoğu öznitelik varsayılan olarak etkindir (örneğin, "aranabilir" ve "alınabilir" dize alanları için geçerlidir) ve bunları genellikle yalnızca kapatmak istiyorsanız ayarlamanız gerekir. .NET SDK'sı için tam tersi doğrudur. Açıkça ayarlamadığınız herhangi bir özellikte, özellikle etkinleştirmediğiniz sürece ilgili arama davranışını devre dışı bırakmak varsayılandır.
Fiziksel yapı ve boyut
Azure AI Search'te bir dizinin fiziksel yapısı büyük ölçüde bir iç uygulamadır. Şemasına erişebilir, içeriğini yükleyip sorgulayabilir, boyutunu izleyebilir ve kapasitesini yönetebilirsiniz. Ancak Microsoft, arama hizmetinizle birlikte depolanan altyapıyı ve fiziksel veri yapılarını yönetir.
Dizin boyutunu Azure portalındaki Arama yönetimi > Dizinleri sayfasından izleyebilirsiniz. Alternatif olarak, depolama boyutunun değerini denetlemek için arama hizmetinize bir GET INDEXisteği veya Bir Hizmet İstatistikleri isteği yayımlayabilirsiniz.
Bir dizinin boyutu aşağıdakiler tarafından belirlenir:
- Belgelerinizin miktarı ve bileşimi.
- Tek tek alanlardaki öznitelikler.
- Index configuration. Özellikle, öneride bulunanları dahil edip etmediğiniz.
Belge oluşturma ve miktar, içeri aktarmayı seçtiğiniz öğelere göre belirlenir. Bir arama dizininin yalnızca aranabilir içerik içermesi gerektiğini unutmayın. Kaynak veriler ikili alanlar içeriyorsa, metin aranabilir bilgiler oluşturmak için içeriği çözmek ve analiz etmek için yapay zeka zenginleştirmesi kullanmadığınız sürece bu alanları atla.
Alan öznitelikleri davranışları belirler. Bu davranışları desteklemek için dizin oluşturma işlemi gerekli veri yapılarını oluşturur. Örneğin , "aranabilir" türünde Edm.Stringbir alan için, belirteçli terim için ters çevrilmiş dizinleri tarayan tam metin aramasını çağırır. Buna karşılık, "filtrelenebilir" veya "sıralanabilir" özniteliği değiştirilmemiş dizeler üzerinde yinelemeyi destekler. Sonraki bölümdeki örnekte, seçilen özniteliklere göre dizin boyutundaki varyasyonlar gösterilmektedir.
Önericiler , önceden yazılan veya otomatik tamamlama sorgularını destekleyen yapılardır. Bir önericisi eklediğinizde, dizin oluşturma işlemi ayrıntılı karakter eşleşmeleri için gerekli veri yapılarını oluşturur. Önericiler alan düzeyinde uygulanır, bu nedenle yalnızca önceden yazma için makul olan alanları seçin.
Özniteliklerin ve önericilerin depolama etkilerini gösteren örnek
Aşağıdaki ekran görüntüsünde çeşitli öznitelik birleşimlerinden kaynaklanan dizin depolama desenleri gösterilmektedir. Dizin, verileri içeri aktarma sihirbazını ve yerleşik örnek verileri kullanarak kolayca oluşturabileceğiniz gayrimenkul örnek dizinini temel alır. Dizin şemaları gösterilmese de, dizin adına göre öznitelikleri çıkarabilirsiniz. Örneğin, realestate-searchable dizininde "aranabilir" özniteliği seçilidir ve başka hiçbir şey seçilmez; realestate-retrievable dizininde "alınabilir" özniteliği seçilidir ve başka hiçbir şey seçilmez ve başka bir şey yoktur.
Bu dizin değişkenleri biraz yapay olsa da özniteliklerin depolamayı nasıl etkilediğine ilişkin kapsamlı karşılaştırmalar için bunlara başvurabiliriz:
- "alınabilir" ifadesinin dizin boyutu üzerinde hiçbir etkisi yoktur.
- "filterable", "sortable", "facetable" daha fazla depolama alanı tüketir.
- önericisi , dizin boyutunu artırma potansiyeline sahiptir, ancak ekran görüntüsünde belirtildiği kadar büyük değildir (çoğu dizinde olası bir senaryo olmayan, öneride bulunanın algılandığı tüm alanlar seçilmiştir).
Ayrıca önceki tabloya yansıtılmayan, çözümleyicilerin etkisidir. Tam karakter dizilerini (a, ab, abc, abcd ) depolamak için edgeNgram belirteci kullanırsanız, dizin standart çözümleyiciyi kullandığınızdan daha büyüktür.
Temel işlemler ve etkileşim
Artık dizinin ne olduğu hakkında daha iyi bir fikriniz olduğuna göre, bu bölüm tek bir dizine bağlanma ve dizinin güvenliğini sağlama dahil olmak üzere dizin çalışma zamanı işlemlerini tanıtır.
Note
Dizini taşımak veya kopyalamak için portal veya API desteği yoktur. Genellikle, uygulama dağıtımınızı farklı bir arama hizmetine yönlendirirsiniz (aynı dizin adını kullanarak) veya geçerli arama hizmetinizde bir kopyasını oluşturmak için adı değiştirin ve ardından oluşturun.
Index isolation
Azure AI Search'te bir kerede bir dizinle çalışırsınız. Dizinle ilgili tüm işlemler tek bir dizini hedefler. dizin oluşturma veya sorgulama için ilgili dizinler veya bağımsız dizinlerin birlenmesi kavramı yoktur.
Continuously available
İlk belge dizine eklendiğinde sorgular için bir dizin hemen kullanılabilir, ancak tüm belgeler dizine alınana kadar tam olarak çalışmaz. Dahili olarak, bir dizin bölümler arasında dağıtılır ve kopyalar üzerinde yürütülür. Fiziksel dizin dahili olarak yönetilir. Mantıksal dizini yönetirsiniz.
Dizin sürekli kullanılabilir ve duraklatılamaz veya çevrimdışına alınamaz. Sürekli işlem için tasarlandığından içeriğinde yapılan güncelleştirmeler ve dizine yapılan eklemeler gerçek zamanlı olarak gerçekleşir. bir istek belge güncelleştirmesiyle çakışıyorsa, sorgular geçici olarak eksik sonuçlar döndürebilir.
Yenileme veya silme gibi belge işlemleri ve yeni alanlar ekleme gibi bir dizinin mevcut yapısını veya bütünlüğünü etkilemeyen değişiklikler için sorgu sürekliliği vardır. Mevcut alanları değiştirme gibi yapısal güncelleştirmeler genellikle geliştirme ortamındaki bir bırakma ve yeniden derleme iş akışı kullanılarak veya üretim hizmetinde dizinin yeni bir sürümü oluşturularak yönetilir.
Dizin yeniden oluşturulmasını önlemek için, küçük değişiklikler yapan bazı müşteriler önceki bir sürümle birlikte var olan yeni bir alan oluşturarak bir alanı "sürümlemektedir". Zaman içinde, özellikle çoğaltılması pahalı olan bir üretim dizininde, eski alanlar ve eski özel çözümleyici tanımları nedeniyle başkasıyla ilişkisi kalmamış içeriğe yol açar. Dizin yaşam döngüsü yönetiminin bir parçası olarak dizinde planlı güncelleştirmeler sırasında bu sorunları çözebilirsiniz.
Uç nokta bağlantısı ve güvenliği
Tüm dizin oluşturma ve sorgu istekleri bir dizini hedefler. Uç noktalar genellikle aşağıdakilerden biridir:
| Endpoint | Bağlantı ve erişim denetimi |
|---|---|
<your-service>.search.windows.net/indexes |
Dizinler koleksiyonunu hedefler. Dizin oluştururken, listelerken veya silerken kullanılır. Bu işlemler için yönetici hakları gereklidir ve yönetici API anahtarları veya Arama Katkıda Bulunanı rolü aracılığıyla kullanılabilir. |
<your-service>.search.windows.net/indexes/<your-index>/docs |
Tek bir dizinin belge koleksiyonunu hedefler. Bir dizini veya veri yenilemeyi sorgularken kullanılır. Sorgular için okuma hakları yeterlidir ve sorgu API'si anahtarları veya veri okuyucu rolü aracılığıyla kullanılabilir. Veri yenileme için yönetici hakları gereklidir. |
Azure AI Search'e bağlanma
Azure portalı ile başlayın. Azure aboneleri veya arama hizmetini oluşturan kişi Azure portalında arama hizmetini yönetebilir. Azure aboneliği, hizmet oluşturmak veya silmek için Katkıda Bulunan veya üzeri izinler gerektirir. Bu izin düzeyi, Azure portalında bir arama hizmetini tam olarak yönetmek için yeterlidir.
Programlı erişim için diğer istemcileri deneyin. İlk adımlar için hızlı başlangıçları öneririz:
Next steps
Azure AI Search için neredeyse tüm örnek veya kılavuzları kullanarak dizin oluşturma konusunda uygulamalı deneyim elde edebilirsiniz. Başlangıç olarak, içindekiler tablosundaki hızlı başlangıçlardan herhangi birini seçebilirsiniz.
Ancak, bir dizini verilerle yüklemeye yönelik yöntemler hakkında da bilgi sahibi olmak istersiniz. Dizin tanımı ve veri içeri aktarma stratejileri birlikte tanımlanır. Aşağıdaki makaleler, dizin oluşturma ve yükleme hakkında daha fazla bilgi sağlar.