Veri içeri genel bakış-Azure Bilişsel Arama
Azure Bilişsel Arama 'de sorgular, ' a yüklenmiş ve bir arama dizininekaydedilen içeriklerinizin üzerinde yürütülür. Bu makalede, bir dizini doldurmak için iki temel yaklaşım incelenir: verileri programlı bir şekilde dizine gönderin veya desteklenen bir veri kaynağındaki Azure bilişsel arama Dizin oluşturucuyu , verileri çekmek için işaretleyin.
Her iki yaklaşımla de amaç bir dış veri kaynağından Azure Bilişsel Arama dizinine veri yükleme. Azure Bilişsel Arama, boş bir dizin oluşturmanıza izin verir, ancak veri göndermeye veya çekene kadar sorgulanabilir değildir.
Not
AI zenginleştirme bir çözüm gereksinimidir, bir dizin yüklemek için çekme modelini (Dizin oluşturucular) kullanmanız gerekir. Dış işleme yalnızca bir dizin oluşturucuya iliştirilmiş becerileri aracılığıyla desteklenir.
Verileri dizine gönderme
Verilerinizi Azure Bilişsel Arama 'a programlı bir şekilde göndermek için kullanılan anında iletme modeli, en esnek yaklaşımdır. Birincisi, veri kaynağı türüne hiçbir kısıtlama getirmez. JSON belgelerinden oluşan herhangi bir veri kümesi, bir Azure Bilişsel Arama dizinine itilmiş olduğundan, veri kümesindeki her belgenin dizin şemanızda tanımlı alanlarla alanları eşleştirmiş olduğunu varsayarsak. İkincisi, yürütme frekansı üzerinde hiçbir kısıtlaması yoktur. Değişiklikleri istediğiniz sıklıkta dizine gönderebilirsiniz. Çok düşük gecikme süresi gereksinimlerine sahip uygulamalar için (örneğin, arama işlemlerinin dinamik stok veritabanlarıyla eşitlenmiş olması gerekiyorsa), tek seçeneğiniz gönderme modelidir.
Belgeleri tek tek veya toplu işlemle karşıya yükleyebileceğinizden (toplu işlem başına en fazla 1000 veya 16 MB sınırlarından hangisi önce gelirse), bu yaklaşım çekme modelinden daha esnektir. Anında iletme modeli, verilerinizi nerede olursa olsun Azure Bilişsel Arama yüklemenize de olanak tanır.
Azure Bilişsel Arama dizinine veri gönderme
Dizin bir tek veya birden çok belge yüklemek için şu API'leri kullanabilirsiniz:
- Belge Ekleme, Güncelleştirme veya Silme (REST API)
- Indexdocumentsaction sınıfı veya ındexdocumentsbatch sınıfı
Şu an portal aracılığıyla veri gönderme için hiçbir araç desteği yoktur.
Her metodolojiye giriş için bkz. hızlı başlangıç: PowerShell veya C# hızlı başlangıç kullanarak azure bilişsel arama dizini oluşturma : .NET SDK kullanarak Azure bilişsel arama dizini oluşturma.
Dizin oluşturma eylemleri: karşıya yükleme, birleştirme, mergeOrUpload, Delete
Belge başına temelinde dizin oluşturma eylemi türünü denetleyebilir, belgenin tam olarak karşıya yüklenip yüklenmeyeceğini, varolan belge içeriğiyle birleştirilip silinmeyeceğini belirtebilir.
REST API Azure Bilişsel Arama dizininizin Endpoint URL 'nize JSON istek gövdeleriyle HTTP POST istekleri verin. "Value" dizisindeki her JSON nesnesi belgenin anahtarını içerir ve bir dizin oluşturma eyleminin belge içeriğini ekleyip eklemediğini veya silmediğini belirtir. Kod örneği için bkz. belgeleri yükleme.
.NET SDK 'sında verilerinizi bir IndexBatch nesneye paketleyin. IndexBatch IndexAction , Her biri bir belge ve bu belgede hangi eylemin gerçekleştirileceğini bilişsel arama Azure 'a söyleyen bir özellik içeren bir nesne koleksiyonunu kapsüller. Bir kod örneği için bkz. C# Hızlı Başlangıcı.
| @search.action | Açıklama | Her bir belge için gerekli alanlar | Notlar |
|---|---|---|---|
upload |
Bir upload eylemi, belgenin yeni olması durumunda ekleneceği ve var olması durumunda güncelleştirileceği/değiştirileceği bir "upsert" ile benzerlik gösterir. |
anahtar ve tanımlamak istediğiniz diğer alanlar | Var olan bir belgeyi güncelleştirirken/değiştirirken istekte belirtilmeyen herhangi bir alan null olarak ayarlanır. Bu durum, alan daha önce değersiz olmayan bir değere ayarlanmış olsa dahi gerçekleşir. |
merge |
Var olan belgeyi belirtilen alanlarla güncelleştirir. Belge dizinde mevcut değilse birleştirme işlemi başarısız olur. | anahtar ve tanımlamak istediğiniz diğer alanlar | Birleştirmede belirttiğiniz herhangi bir alan belgede var olan alanın yerini alır. .NET SDK 'sında bu, türünde alanlar içerir DataType.Collection(DataType.String) . REST API, bu, türünde alanlar içerir Collection(Edm.String) . Örneğin, belge ["budget"] değerine sahip bir tags alanını içeriyorsa ve tags için ["economy", "pool"] değeriyle bir birleştirme yürütürseniz tags alanının son değeri ["economy", "pool"] olur. ["budget", "economy", "pool"] olmayacaktır. |
mergeOrUpload |
Belirtilen anahtara sahip bir belge dizinde zaten mevcutsa bu eylem merge gibi davranır. Belge mevcut değilse yeni bir belgeyle upload gibi davranır. |
anahtar ve tanımlamak istediğiniz diğer alanlar | - |
delete |
Belirtilen belgeyi dizinden kaldırır. | yalnızca anahtar | Anahtar alanı dışında belirttiğiniz tüm alanlar yoksayılır. Bir belgeden tek bir alanı kaldırmak istiyorsanız bunun yerine merge kullanıp alanı açık bir şekilde null olarak ayarlamanız yeterlidir. |
Sorgunuzu düzenleme
REST API kullanarak dizininizi aramanın iki yolu bulunur. Bu yollardan biri, sorgu parametrelerinizin istek gövdesindeki bir JSON nesnesinde tanımlanacağı bir HTTP POST isteği göndermektir. Diğer yol ise sorgu parametrelerinizin istek URL'si içinde tanımlanacağı bir HTTP GET isteği göndermektir. POST, sorgu parametrelerinin boyutu açısından GET'ten daha esnek sınırlara sahiptir. Bu nedenle, GET'i kullanmanın daha kullanışlı olduğu özel durumlar olmadığı sürece POST kullanmanızı öneririz.
Hem GÖNDERI hem de GET için, istek URL 'sinde hizmet adınızı, Dizin adınızı ve bir API sürümünü sağlamanız gerekir.
GET için sorgu parametrelerini URL'nin sonundaki sorgu dizesine sağlarsınız. URL biçimi için aşağıya bakın:
https://[service name].search.windows.net/indexes/[index name]/docs?[query string]&api-version=2019-05-06
POST biçimi aynı ancak api-version sorgu dizesi parametrelerinde ile aynıdır.
Verileri dizine çekme
Çekme modeli, desteklenen veri kaynağında gezinir ve dizininize verileri otomatik olarak yükler. Azure Bilişsel Arama, bu özellik şu anda bu platformlar için kullanılabilen Dizin oluşturucular aracılığıyla uygulanır:
- Blob depolama
- Tablo depolama
- Azure Cosmos DB
- Azure SQL Veritabanı, SQL yönetilen örnek ve SQL Server Azure vm 'lerde
- SharePoint Çevrimiçi (Önizleme)
- Azure Data Lake Storage 2. Nesil
Dizin oluşturucular bir dizini bir veri kaynağına (genelde tablo, görünüm veya eşdeğer bir yapı) bağlar ve kaynak alanları dizindeki eşdeğer alanlara eşler. Yürütme sırasında satır kümesi otomatik olarak JSON'a dönüştürülür ve belirtilen dizine yüklenir. Tüm dizin oluşturucular zamanlamayı destekler ve bu sayede verilerin yenilenme sıklığını belirleyebilirsiniz. Çoğu dizin oluşturucular veri kaynağının desteklemesi durumunda değişiklik izleme özelliği sunar. Dizin oluşturucular, var olan belgelerdeki değişiklikleri ve silmeleri takip etmenin yanı sıra yeni belgeleri tanıyarak, dizininizdeki verileri aktif şekilde yönetme ihtiyacını ortadan kaldırır.
Azure Bilişsel Arama dizinine veri çekme
Dizin oluşturucu işlevleri Azure portalı, REST API'sı ve .NET SDK'sında belirtilmiştir.
Portalı kullanmanın bir avantajı, Azure Bilişsel Arama kaynak veri kümesinin meta verilerini okuyarak genellikle sizin için varsayılan bir dizin şeması oluşturabilir. Oluşturulan dizini işlenene kadar değiştirebilirsiniz ancak işlendikten sonra yalnızca dizinin yeniden oluşturulmasını gerektirmeyen şema düzenlemelerine izin verilir. Yapmak istediğiniz değişikliklerin şemayı doğrudan etkilemesi halinde dizini yeniden oluşturmanız gerekir.
Arama Gezgini ile veri içeri aktarmayı doğrulama
Karşıya belge yükleme sırasında bir ön denetim yapmanın hızlı bir yolu, portalda Arama Gezgini 'ni kullanmaktır. Bu gezgin, bir dizini kod yazmadan sorgulamanızı sağlar. Arama deneyimi basit söz dizimi ve varsayılan searchMode sorgu parametresigibi varsayılan ayarları temel alır. Belgenin tamamını inceleyebilmeniz için sonuçlar JSON biçiminde döndürülür.
İpucu
Birçok Azure bilişsel arama kod örneği , kolayca kullanmaya başlamak için kolay bir yol sunan eklenmiş veya hazır veri kümelerini içerir. Portalda ayrıca örnek dizin oluşturucu ve küçük bir emlak veri kümesini ("realestate-us-sample" adlı) içeren veri kaynağı mevcuttur. Önceden yapılandırılmış dizin oluşturucuyu örnek veri kaynağında çalıştırdığınızda, bir dizin oluşturulur ve daha sonra arama Gezgini 'nde veya yazdığınız kodla sorgulanabilecek belgeler ile yüklenir.