문서 추가, 업데이트 또는 삭제(미리 보기 REST API)
적용 : 2023-07-01-Preview. 이 버전은 더 이상 지원되지 않습니다. 업그레이드는 즉시 최신 버전으로.
중요하다
2023-07-01-Preview는 다음을 추가합니다.
- 문서의 벡터 필드를 지원합니다.
HTTP POST를 사용하여 벡터 필드가 포함된 문서를 지정된 인덱스로 푸시할 수 있습니다. 대규모 업데이트의 경우 일괄 처리(일괄 처리당 최대 1000개 문서 또는 일괄 처리당 약 16MB)는 인덱싱 성능을 향상시킵니다.
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 매개 변수
매개 변수 | 묘사 |
---|---|
서비스 이름 | 필수. 이 값을 검색 서비스의 고유한 사용자 정의 이름으로 설정합니다. |
인덱스 이름 | 필수. 이 값을 문서를 받는 인덱스의 이름으로 설정합니다. 문서를 한 번에 하나의 인덱스로만 게시할 수 있습니다. |
api-version | 더 많은 버전은 API 버전 참조하세요. |
요청 헤더
다음 표에서는 필수 및 선택적 요청 헤더에 대해 설명합니다.
필드 | 묘사 |
---|---|
Content-Type | 필수. 이 값을 application/json |
api-key |
Azure 역할 사용하고 요청에 전달자 토큰이 제공된 경우 선택 사항입니다. 그렇지 않으면 키가 필요합니다. api-key는 검색 서비스에 대한 요청을 인증하는 고유한 시스템 생성 문자열입니다. 문서를 업로드하려면 관리자 API 키가 필요합니다. 자세한 내용은 키 인증 사용하여 Azure AI Search에 |
요청 본문
요청 본문에는 인덱싱할 문서가 하나 이상 포함되어 있습니다. 문서는 대/소문자를 구분하는 키를 통해 고유하게 식별됩니다. 각 문서는 "upload", "delete", "merge" 또는 "mergeOrUpload" 작업과 연결됩니다. 업로드 요청에는 문서 데이터를 키/값 쌍 집합으로 포함해야 합니다.
벡터 필드는 Collection(Edm.Single)
형식입니다. 벡터 데이터는 단정밀도 부동 소수점 숫자의 배열로 구성됩니다.
벡터 필드는 원래 콘텐츠의 복잡성, 길이 또는 형식에 따라 수천 개의 포함을 포함할 수 있습니다. Azure AI Search는 콘텐츠를 포함으로 변환하지 않습니다. 인덱스에 푸시하는 문서에는 이전에 생성한 포함 항목이 포함되어야 합니다.
{
"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 ]
...
},
...
]
}
재산 | 묘사 |
---|---|
@search.action | 필수. 유효한 값은 "upload", "delete", "merge" 또는 "mergeOrUpload"입니다. 기본값은 "upload"입니다. |
key_field_name | 필수. 문서 키 역할을 하고 고유 값만 포함하는 인덱스의 필드 정의입니다. 문서 키는 문자, 숫자, 대시("-" ), 밑줄("_" ), 등호("=" )만 포함할 수 있으며 대/소문자를 구분합니다. |
field_name | 필수. 필드 이름이 인덱스 정의의 필드 이름에 해당하는 이름-값 쌍입니다. 값은 사용자 정의이지만 필드 형식에 대해 유효해야 합니다. |
응답
상태 코드: 성공적인 응답을 위해 200이 반환됩니다. 즉, 모든 항목이 지속적으로 저장되고 인덱싱이 시작되었습니다. 인덱싱은 백그라운드에서 실행되며 인덱싱 작업이 완료된 후 몇 초 후에 새 문서(즉, 쿼리 가능하고 검색 가능)를 사용할 수 있습니다.
성공적인 인덱싱은 상태 속성이 모든 항목에 대해 true로 설정된 경우 표시됩니다. statusCode 속성은 201(새로 업로드된 문서의 경우) 또는 200(병합되거나 삭제된 문서의 경우)이어야 합니다.
예제
예제: 텍스트 및 벡터 콘텐츠 사용하여 두 개의 문서 업로드
가독성을 위해 다음 예제에서는 문서 및 포함의 하위 집합을 보여 줍니다. 문서 업로드 요청의 본문은 각각 "titleVector" 및 "contentVector"에 대한 전체 포함 집합이 있는 108개의 문서로 구성됩니다.
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"
}
. . .
]
}
메모
표준 시간대 정보가 있는 DateTimeOffset
값을 인덱스에 업로드하면 Azure AI Search는 이러한 값을 UTC로 정규화합니다. 예를 들어 2019-01-13T14:03:00-08:00은 2019-01-13T22:03:00Z로 저장됩니다. 표준 시간대 정보를 저장해야 하는 경우 인덱싱에 추가 열을 추가합니다.
참고 항목
- 검색 인덱스 데이터 로드