이 가이드는 Azure 포털을 사용하여 Azure AI Search를 설정하는 데 도움이 됩니다. 아래 단계를 따라 Azure AI Search 서비스를 생성하고 구성하세요.
시작하기 전에 다음을 준비했는지 확인하세요:
https://<service-name>.search.windows.net와 같습니다.Azure AI Search는 다양한 도구와 통합되어 검색 기능을 향상시킵니다. 고급 구성 및 작업을 위해 Azure CLI, Python SDK, .NET SDK 및 기타 도구를 사용할 수 있습니다.
다음 명령어를 사용하여 Azure CLI에 로그인합니다:
az login
(권장) Microsoft Entra ID(RBAC)로 키 없는 액세스 활성화:
az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
az role assignment create --assignee <your-user-or-principal-id> --role "Search Service Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
az role assignment create --assignee <your-user-or-principal-id> --role "Search Index Data Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
# az search service show has no "endpoint" field; build the URL from the service name.
export AZURE_SEARCH_SERVICE_ENDPOINT="https://<service-name>.search.windows.net"
RBAC이 활성화된 경우, 아래 Python 및 .NET SDK 샘플은 DefaultAzureCredential을 사용하여 인증하며, 이는 로컬 개발 중에 az login 세션을 사용하므로 관리자 키가 필요 없습니다. 자세한 내용은 역할을 사용하여 Azure AI Search에 연결하기를 참조하세요.
# az search service show has no "endpoint" field; build the URL from the service name.
export AZURE_SEARCH_SERVICE_ENDPOINT="https://<service-name>.search.windows.net"
export AZURE_SEARCH_API_KEY=$(az search admin-key show -g <resource-group> --service-name <service-name> --query "primaryKey" -o tsv)
# az search service show has no "endpoint" field; build the URL from the service name.
$env:AZURE_SEARCH_SERVICE_ENDPOINT = "https://<service-name>.search.windows.net"
$env:AZURE_SEARCH_API_KEY = $(az search admin-key show -g <resource-group> --service-name <service-name> --query "primaryKey" -o tsv)
Azure Cognitive Search 클라이언트 라이브러리와 Azure Identity for Python을 설치합니다:
pip install azure-search-documents azure-identity
다음 Python 코드를 사용하여 인덱스를 생성하고 문서를 업로드합니다:
import os
from azure.identity import DefaultAzureCredential
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import SearchIndex, SimpleField, edm
service_endpoint = os.getenv("AZURE_SEARCH_SERVICE_ENDPOINT")
index_name = "sample-index"
# Keyless (recommended): uses your `az login` identity via Entra ID RBAC.
# Requires the "Search Service Contributor" and "Search Index Data Contributor" roles.
credential = DefaultAzureCredential()
# Fallback (key-based auth):
# from azure.core.credentials import AzureKeyCredential
# credential = AzureKeyCredential(os.getenv("AZURE_SEARCH_API_KEY"))
index_client = SearchIndexClient(service_endpoint, credential)
fields = [
SimpleField(name="id", type=edm.String, key=True),
SimpleField(name="content", type=edm.String, searchable=True),
]
index = SearchIndex(name=index_name, fields=fields)
index_client.create_index(index)
search_client = SearchClient(service_endpoint, index_name, credential)
documents = [
{"id": "1", "content": "Hello world"},
{"id": "2", "content": "Azure Cognitive Search"}
]
search_client.upload_documents(documents)
다음 명령어를 실행하여 인덱스를 생성하고 문서를 업로드합니다:
dotnet run ./AzureSearch.cs
아래 .NET 샘플은 DefaultAzureCredential을 사용하며, 이는 로컬 개발 중에 az login에서 Azure CLI 로그인 정보를 사용할 수 있습니다.
다음은 AzureSearch.cs의 .NET 코드입니다:
#:package Azure.Search.Documents@11.*
#:package Azure.Identity@1.21.0
#:property PublishAot=false
using Azure;
using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var serviceEndpoint = new Uri(Environment.GetEnvironmentVariable("AZURE_SEARCH_SERVICE_ENDPOINT")!);
var indexName = "sample-index";
// Keyless (recommended): uses your `az login` identity via Entra ID RBAC.
// Requires the "Search Service Contributor" and "Search Index Data Contributor" roles.
var credential = new DefaultAzureCredential();
// Fallback (key-based auth): the `using Azure;` directive above already imports
// AzureKeyCredential; replace the credential line above with:
// var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_SEARCH_API_KEY")!);
var indexClient = new SearchIndexClient(serviceEndpoint, credential);
var fields = new List<SearchField>()
{
new SimpleField("id", SearchFieldDataType.String) { IsKey = true },
new SearchableField("content")
};
var index = new SearchIndex(name: indexName, fields: fields);
var response = await indexClient.CreateOrUpdateIndexAsync(index);
Console.WriteLine($"Index '{response.Value.Name}' ready.");
var searchClient = new SearchClient(serviceEndpoint, indexName, credential);
var documents = new[]
{
new { id = "1", content = "Hello world" },
new { id = "2", content = "Azure Cognitive Search" }
};
var result = await searchClient.UploadDocumentsAsync(documents);
Console.WriteLine($"Uploaded {result.Value.Results.Count} documents to index '{response.Value.Name}'.");
자세한 내용은 다음 문서를 참조하세요:
Azure 포털과 통합 도구를 사용하여 Azure AI Search를 성공적으로 설정했습니다. 이제 Azure AI Search의 고급 기능과 기능을 탐색하여 검색 솔루션을 향상시킬 수 있습니다.
추가 도움이 필요하면 Azure Cognitive Search 문서를 방문하세요.
면책 조항: 이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서의 원어본이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문가의 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.