Управление индексом в Поиск с использованием ИИ Azure

Note

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

После создания индекса можно использовать портал Azure для доступа к статистике и определению или удалению из службы поиска.

После создания индекса можно использовать интерфейсы REST API Поиск с использованием ИИ Azure для доступа к статистике и определению или удалить его из службы поиска.

После создание индекса вы можете использовать Azure SDK для .NET, Java, JavaScript или Python для доступа к статистике и определению или удалению из службы поиска.

В этой статье описывается, как управлять индексом, не затрагивая его содержимое. Инструкции по изменению определения индекса см. Обновление или перестроение индекса в Поиск с использованием ИИ Azure.

Ограничения

Ценовая категория службы поиска определяет максимальное число и размер индексов, полей и документов. Дополнительные сведения см. в разделе Service limits in Поиск с использованием ИИ Azure.

В противном случае к управлению индексами применяются следующие ограничения:

  • Вы не можете использовать индекс в автономном режиме для обслуживания. Индексы всегда доступны для операций поиска.

  • Невозможно напрямую скопировать или дублировать индекс между службами поиска. Однако вы можете использовать пример резервного копирования и восстановления для .NET или Python для достижения аналогичной функциональности.

Просмотр всех индексов

Чтобы просмотреть все индексы, выполните приведенные далее действия.

  1. Перейдите в службу поиска на портале Azure.

  2. В левой области выберите управление поиском>индексы.

    Снимок экрана: страница индексов на портале.

    По умолчанию индексы сортируются по имени в порядке возрастания. Вы можете сортировать по имени, количеству документов, использованию квоты векторного индекса или общему размеру хранилища , выбрав соответствующий заголовок столбца.

Используйте индексы — список (REST API), чтобы получить все индексы в службе поиска.

### List all indexes
GET https://[service name].search.windows.net/indexes?api-version=[api version]
    Content-Type: application/json
    api-key: [admin key]

Используйте предпочтительный Azure SDK для получения всех индексов в службе поиска.

Azure SDK для .NET предоставляет GetIndexesAsync для этой задачи.

// Create a SearchIndexClient
var endpoint = new Uri("[service endpoint]");
var credential = new AzureKeyCredential("[admin key]");
var indexClient = new SearchIndexClient(endpoint, credential);

// List all indexes
await foreach (var index in indexClient.GetIndexesAsync())
{
    Console.WriteLine(index.Name);
}

Просмотр статистики индекса

На странице индекса портал предоставляет следующую статистику:

  • Количество документов в индексе.
  • Место хранения, используемое индексом.
  • Векторное хранилище, используемое индексом.
  • Максимальное дисковое пространство для каждого индекса в службе поиска, которое зависит от ценовой категории. Это значение не представляет общее хранилище, доступное индексу.

Снимок экрана: статистика индекса на портале.

Используйте индексы - получение статистики (REST API) для получения количества документов, объема использования хранилища и объема использования векторного хранилища индекса.

### Get index statistics
GET https://[service name].search.windows.net/indexes/[index name]/stats?api-version=[api version]
    Content-Type: application/json
    api-key: [admin key]

Используйте предпочтительный Azure SDK для получения количества документов, использования хранилища и векторного хранения индекса.

Azure SDK для .NET предоставляет GetIndexStatisticsAsync для этой задачи.

// Create a SearchIndexClient
var endpoint = new Uri("[service endpoint]");
var credential = new AzureKeyCredential("[admin key]");
var indexClient = new SearchIndexClient(endpoint, credential);

// Get index statistics
var statsResponse = await indexClient.GetIndexStatisticsAsync("[index name]");
var stats = statsResponse.Value;
Console.WriteLine($"Number of documents: {stats.DocumentCount:N0}");
Console.WriteLine($"Storage consumed by index: {stats.StorageSize:N0} bytes");
Console.WriteLine($"Storage consumed by vectors: {stats.VectorIndexSize:N0} bytes");

Просмотр определения индекса

Каждый индекс определяется полями и необязательными компонентами, которые повышают возможности поиска, такие как анализаторы, нормализаторы, маркеризаторы и карты синонимов. Это определение определяет структуру и поведение индекса во время индексирования и запроса.

На странице индекса выберите "Изменить JSON ", чтобы просмотреть полное определение.

Снимок экрана: кнопка

Используйте индексы: получение (REST API) для получения JSON-определения индекса.

### Get index definition
GET https://[service name].search.windows.net/indexes/[index name]?api-version=[api version]
    Content-Type: application/json
    api-key: [admin key]

Используйте предпочтительный Azure SDK для получения определения JSON индекса.

Azure SDK для .NET предоставляет GetIndexAsync для этой задачи.

// Create a SearchIndexClient
var endpoint = new Uri("[service endpoint]");
var credential = new AzureKeyCredential("[admin key]");
var indexClient = new SearchIndexClient(endpoint, credential);

// Get index definition
var index = await indexClient.GetIndexAsync("[index name]");
string indexJson = JsonSerializer.Serialize(index.Value, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(indexJson);

Удаление индекса

Предупреждение

Невозможно отменить удаление индекса. Прежде чем продолжить, убедитесь, что вы хотите окончательно удалить индекс и его документы из службы поиска.

На странице индекса выберите "Удалить ", чтобы инициировать процесс удаления.

Снимок экрана: кнопка

На портале появится запрос на подтверждение удаления. После нажатия кнопки "Удалить" проверьте уведомления, чтобы убедиться, что удаление выполнено успешно.

Снимок экрана: подтверждение удаления на портале.

Используйте индексы— удаление (REST API) для окончательного удаления индекса.

### Delete an index
DELETE https://[service name].search.windows.net/indexes/[index name]?api-version=[api version]
    Content-Type: application/json
    api-key: [admin key]

Если индекс был удален успешно, вы должны получить HTTP/1.1 204 No Content ответ.

Используйте предпочтительный Azure SDK для окончательного удаления индекса.

Azure SDK для .NET предоставляет DeleteIndexAsync для этой задачи.

// Create a SearchIndexClient
var endpoint = new Uri("[service endpoint]");
var credential = new AzureKeyCredential("[admin key]");
var indexClient = new SearchIndexClient(endpoint, credential);

// Delete the index
await indexClient.DeleteIndexAsync("[index name]");
Console.WriteLine("Index deleted successfully.");