Това ръководство ще ви помогне да настроите Azure AI Search чрез портала на Azure. Следвайте стъпките по-долу, за да създадете и конфигурирате вашата услуга 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 show няма поле "endpoint"; изградете URL от името на услугата.
export AZURE_SEARCH_SERVICE_ENDPOINT="https://<service-name>.search.windows.net"
С RBAC активиран, примерите с Python и .NET SDK по-долу се удостоверяват с DefaultAzureCredential, който използва вашата сесия az login по време на локална разработка — не е нужен администраторски ключ. Вижте Connect to Azure AI Search using roles.
```bash
# zsh/bash
# az search service show няма поле "endpoint"; създайте URL от името на услугата.
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)
```
```powershell
# PowerShell
# az search service show няма поле "endpoint"; създайте URL от името на услугата.
$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 за 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"
# Без ключ (препоръчително): използва вашата идентичност от `az login` чрез Entra ID RBAC.
# Изисква ролите "Search Service Contributor" и "Search Index Data Contributor".
credential = DefaultAzureCredential()
# Резервен вариант (автентикация с ключ):
# от azure.core.credentials импортирайте 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, който може да използва вашето влизане в Azure CLI от az login по време на локалната разработка.
Ето .NET кода на AzureSearch.cs:
#: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 AI Search чрез Azure портала и интегрираните инструменти. Сега можете да разгледате по-напредналите функции и възможности на Azure AI Search за подобряване на вашите решения за търсене.
За допълнителна помощ посетете документацията на Azure Cognitive Search.
Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.