Belge Ekleme, Güncelleştirme veya Silme (Önizleme REST API'si)

Şunlar için geçerlidir: 2023-07-01-Preview

Önemli

2023-07-01-Preview ekliyor:

  • Belgedeki vektör alanları için destek.

HTTP POST kullanarak vektör alanları içeren belgeleri belirtilen dizine gönderebilirsiniz. Büyük bir güncelleştirme için toplu işlem (toplu işlem başına en fazla 1000 belge veya toplu iş başına yaklaşık 16 MB) dizin oluşturma performansını artırır.

POST https://[service name].search.windows.net/indexes/[index name]/docs/index?api-version=2023-07-01-Preview  
  Content-Type: application/json   
  api-key: [admin key]  

URI Parametreleri

Parametre Açıklama
hizmet adı Gereklidir. Bu değeri arama hizmetinizin benzersiz, kullanıcı tanımlı adı olarak ayarlayın.
dizin adı Gereklidir. Bu değeri belgeleri alan dizinin adı olarak ayarlayın. Belgeleri bir kerede yalnızca bir dizine gönderebilirsiniz.
api-sürümü Gereklidir. Geçerli önizleme sürümü şeklindedir 2023-07-23-Preview. Daha fazla sürüm için bkz. API sürümleri.

İstek Üst Bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

Alanlar Description
İçerik Türü Gereklidir. Bu değeri olarak ayarlayın application/json
api-key İsteğe bağlı olarak, Azure rollerini kullanıyorsanız ve istekte taşıyıcı belirteç sağlanırsa, aksi takdirde bir anahtar gereklidir. Api anahtarı, arama hizmetinizde isteğin kimliğini doğrulayan, sistem tarafından oluşturulan benzersiz bir dizedir. Belgeleri karşıya yüklemek için bir yönetici API anahtarı gerekir. Ayrıntılar için bkz. Anahtar kimlik doğrulamasını kullanarak Azure AI Search'e bağlanma .

İstek Gövdesi

İsteğin gövdesi dizine eklenecek bir veya daha fazla belge içeriyor. Belgeler, büyük/küçük harfe duyarlı bir anahtar aracılığıyla benzersiz olarak tanımlanır. Her belge bir eylemle ilişkilendirilir: "upload", "delete", "merge" veya "mergeOrUpload". Karşıya yükleme istekleri, belge verilerini bir dizi anahtar/değer çifti olarak içermelidir.

Vektör alanları türündedir Collection(Edm.Single). Vektör verileri, tek duyarlıklı kayan nokta sayılarından oluşan bir diziden oluşur.

Vektör alanları, özgün içeriğin karmaşıklığı, uzunluğu veya türüne bağlı olarak binlerce ekleme içerebilir. Azure AI Search içeriği eklemeye dönüştürmez. Dizine gönderdiğiniz belgeler, daha önce oluşturduğunuz eklemeleri içermelidir.

{  
  "value": [  
    {  
      "@search.action": "upload (default) | merge | mergeOrUpload | delete",  
      "key_field_name": "unique_key_of_document", (key/value pair for key field from index schema)  
      "field_name": field_value (key/value pairs matching index schema),
      "vector_field_name": [ array of single-precision floating point numbers ]
        ...  
    },  
    ...  
  ]  
}  
Özellik Açıklama
@search.action Gereklidir. Geçerli değerler "upload", "delete", "merge" veya "mergeOrUpload" değerleridir. Varsayılan olarak "karşıya yükleme" kullanılır.
key_field_name Gereklidir. Dizinde belge anahtarı görevi görecek ve yalnızca benzersiz değerler içeren bir alan tanımı. Belge anahtarları yalnızca harf, sayı, tire ("-"), alt çizgi ()"_" ve eşittir işareti ("=") içerebilir ve büyük/küçük harfe duyarlıdır.
field_name Gereklidir. Ad-değer çiftleri; burada alanın adı dizin tanımındaki bir alan adına karşılık gelir. Değer kullanıcı tanımlıdır ancak alan türü için geçerli olmalıdır.

Yanıt

Durum kodu: Başarılı bir yanıt için 200 döndürülür; başka bir deyişle tüm öğeler sağlam bir şekilde depolanmış ve bu dizin oluşturma işlemi başlamıştır. Dizin oluşturma arka planda çalışır ve dizin oluşturma işlemi tamamlandıktan birkaç saniye sonra yeni belgeleri kullanılabilir hale getirir (sorgulanabilir ve aranabilir).

Tüm öğeler için durum özelliği true olarak ayarlandığında başarılı dizin oluşturma gösterilir. statusCode özelliği 201 (yeni yüklenen belgeler için) veya 200 (birleştirilmiş veya silinen belgeler için) olmalıdır.

Örnekler

Örnek: Metin ve vektör içeriğine sahip iki belgeyi karşıya yükleme

Okunabilirlik için, aşağıdaki örnekte belgelerin ve eklemelerin bir alt kümesi gösterilmektedir. Belgeleri Karşıya Yükle isteğinin gövdesi, her biri "titleVector" ve "contentVector" için tam bir ekleme kümesine sahip 108 belgeden oluşur.

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
    "value": [
        {
            "id": "1",
            "title": "Azure App Service",
            "content": "Azure App Service is a fully managed platform for building, deploying, and scaling web apps. You can host web apps, mobile app backends, and RESTful APIs. It supports a variety of programming languages and frameworks, such as .NET, Java, Node.js, Python, and PHP. The service offers built-in auto-scaling and load balancing capabilities. It also provides integration with other Azure services, such as Azure DevOps, GitHub, and Bitbucket.",
            "category": "Web",
            "titleVector": [
                -0.02250031754374504,
                 . . . 
                        ],
            "contentVector": [
                -0.024740582332015038,
                 . . .
            ],
            "@search.action": "upload"
        },
        {
            "id": "2",
            "title": "Azure Functions",
            "content": "Azure Functions is a serverless compute service that enables you to run code on-demand without having to manage infrastructure. It allows you to build and deploy event-driven applications that automatically scale with your workload. Functions support various languages, including C#, F#, Node.js, Python, and Java. It offers a variety of triggers and bindings to integrate with other Azure services and external services. You only pay for the compute time you consume.",
            "category": "Compute",
            "titleVector": [
                -0.020159931853413582,
                . . .
            ],
            "contentVector": [
                -0.02780858241021633,,
                 . . .
            ],
            "@search.action": "upload"
        }
        . . .
    ]
}

Not

Saat dilimi bilgilerini içeren değerleri dizininize yüklediğinizde DateTimeOffset Azure AI Search bu değerleri UTC olarak normalleştirir. Örneğin, 2019-01-13T14:03:00-08:00, 2019-01-13T22:03:00Z olarak depolanır. Saat dilimi bilgilerini depolamanız gerekiyorsa dizininize fazladan bir sütun ekleyin.

Ayrıca bkz.