创建索引后,可以使用 Azure 门户访问其统计信息和定义,或将其从搜索服务中删除。
本文介绍如何在不影响索引内容的情况下管理索引。 有关修改索引定义的指南,请参阅 Azure AI 搜索中的更新或重新生成索引。
局限性
搜索服务的定价层确定索引、字段和文档的最大数量和大小。 有关详细信息,请参阅 Azure AI 搜索中的服务限制。
否则,以下限制适用于索引管理:
查看所有索引
查看所有索引:
登录到 Azure 门户 并选择搜索服务。
在左窗格中,选择 “搜索管理>索引”。
默认情况下,索引按名称按升序排序。 可以通过选择相应的列标题,按 名称、 文档计数、 矢量索引配额使用情况或 总存储大小 进行排序。
查看索引的统计信息
在索引页上,门户提供以下统计信息:
- 索引中的文档数。
- 索引使用的存储空间。
- 索引使用的矢量存储空间。
- 搜索服务上每个索引的最大存储空间,具体取决于 定价层。 此值不表示索引当前可用的总存储。
查看索引的定义
每个索引由增强搜索功能的字段和可选组件定义,例如分析器、规范化器、标记化器和同义词映射。 此定义确定索引在索引编制和查询期间的结构和行为。
在索引页上,选择 “编辑 JSON” 以查看其完整定义。
删除索引
警告
无法撤销已删除的索引。 在继续之前,请确保要从搜索服务中永久删除索引及其文档。
在索引页上,选择 “删除 ”以启动删除过程。
门户会提示你确认删除。 选择 “删除”后,请检查通知以确认删除成功。
创建索引后,可以使用 Azure AI 搜索 REST API 访问其统计信息和定义,或将其从搜索服务中删除。
本文介绍如何在不影响索引内容的情况下管理索引。 有关修改索引定义的指南,请参阅 Azure AI 搜索中的更新或重新生成索引。
局限性
搜索服务的定价层确定索引、字段和文档的最大数量和大小。 有关详细信息,请参阅 Azure AI 搜索中的服务限制。
否则,以下限制适用于索引管理:
查看所有索引
使用 索引 - 列表(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]
查看索引的统计信息
使用 索引 - 获取统计信息(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]
查看索引的定义
每个索引由增强搜索功能的字段和可选组件定义,例如分析器、规范化器、标记化器和同义词映射。 此定义确定索引在索引编制和查询期间的结构和行为。
使用 索引 - 获取(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]
删除索引
警告
无法撤销已删除的索引。 在继续之前,请确保要从搜索服务中永久删除索引及其文档。
使用 索引 - 删除(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 响应。
创建索引后,可以使用用于 .NET、Java、JavaScript 或 Python 的 Azure SDK 访问其统计信息和定义,或将其从搜索服务中删除。
本文介绍如何在不影响索引内容的情况下管理索引。 有关修改索引定义的指南,请参阅 Azure AI 搜索中的更新或重新生成索引。
局限性
搜索服务的定价层确定索引、字段和文档的最大数量和大小。 有关详细信息,请参阅 Azure AI 搜索中的服务限制。
否则,以下限制适用于索引管理:
查看所有索引
使用首选的 Azure SDK 检索搜索服务上的所有索引。
用于 .NET 的 Azure SDK 为此任务提供 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);
}
用于 Java 的 Azure SDK 在此任务的 SearchIndexAsyncClient 类中提供listIndexes。
// Create a SearchIndexAsyncClient
String endpoint = "[service endpoint]";
String adminKey = "[admin key]";
SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(adminKey))
.buildAsyncClient();
// List all indexes
searchIndexAsyncClient.listIndexes()
.subscribe(
index -> System.out.println(index.getName())
);
用于 JavaScript 的 Azure SDK 在此任务的 SearchIndexClient 类中提供listIndexes。
// Create a SearchIndexClient
const endpoint = "[service endpoint]";
const adminKey = "[admin key]";
const client = new SearchIndexClient(endpoint, new AzureKeyCredential(adminKey)
);
// List all indexes
(async () => {
for await (const index of client.listIndexes()) {
console.log(index.name);
}
})();
用于 Python 的 Azure SDK 在此任务的 SearchIndexClient 类中提供list_indexes。
# Create a SearchIndexClient
endpoint = "[service endpoint]"
admin_key = AzureKeyCredential("[admin key]")
client = SearchIndexClient(endpoint=endpoint, credential=admin_key)
# List all indexes
for index in client.list_indexes():
print(index.name)
查看索引的统计信息
使用首选的 Azure SDK 检索索引的文档计数、存储使用情况和矢量存储使用情况。
用于 .NET 的 Azure SDK 为此任务提供 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");
用于 Java 的 Azure SDK 在此任务的 SearchIndexAsyncClient 类中提供getIndexStatistics。
// Create a SearchIndexAsyncClient
String endpoint = "[service endpoint]";
String adminKey = "[admin key]";
SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(adminKey))
.buildAsyncClient();
// Get index statistics
SearchIndexStatistics stats = searchIndexAsyncClient.getIndexStatistics("[index name]").block();
System.out.println("Number of documents: " + stats.getDocumentCount());
System.out.println("Storage consumed by index: " + stats.getStorageSize() + " bytes");
System.out.println("Storage consumed by vectors: " + stats.getVectorIndexSize() + " bytes");
用于 JavaScript 的 Azure SDK 在此任务的 SearchIndexClient 类中提供getIndexStatistics。
// Create a SearchIndexClient
const endpoint = "[service endpoint]";
const adminKey = "[admin key]";
const client = new SearchIndexClient(endpoint, new AzureKeyCredential(adminKey)
);
// Get index statistics
(async () => {
const stats = await client.getIndexStatistics("[index name]");
console.log(`Number of documents: ${stats.documentCount}`);
console.log(`Storage consumed by index: ${stats.storageSize} bytes`);
console.log(`Storage consumed by vectors: ${stats.vectorIndexSize} bytes`);
})();
用于 Python 的 Azure SDK 为此任务提供 get_index_statistics 。
# Create a SearchIndexClient
endpoint = "[service endpoint]"
admin_key = AzureKeyCredential("[admin key]")
client = SearchIndexClient(endpoint=endpoint, credential=admin_key)
# Get index statistics
stats = client.get_index_statistics("[index name]")
print(f"Number of documents: {stats['document_count']}")
print(f"Storage consumed by index: {stats['storage_size']} bytes")
print(f"Storage consumed by vectors: {stats['vector_index_size']} bytes")
查看索引的定义
每个索引由增强搜索功能的字段和可选组件定义,例如分析器、规范化器、标记化器和同义词映射。 此定义确定索引在索引编制和查询期间的结构和行为。
使用首选的 Azure SDK 检索索引的 JSON 定义。
用于 .NET 的 Azure SDK 为此任务提供 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);
用于 Java 的 Azure SDK 在此任务的 SearchIndexAsyncClient 类中提供getIndex。
// Create a SearchIndexAsyncClient
String endpoint = "[service endpoint]";
String adminKey = "[admin key]";
SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(adminKey))
.buildAsyncClient();
// Get index definition
searchIndexAsyncClient.getIndex("[index name]")
.subscribe(index -> {
try {
String prettyJson = new ObjectMapper()
.writerWithDefaultPrettyPrinter()
.writeValueAsString(index);
System.out.println(prettyJson);
} catch (Exception e) {
e.printStackTrace();
}
});
用于 JavaScript 的 Azure SDK 在此任务的 SearchIndexClient 类中提供getIndex。
// Create a SearchIndexClient
const endpoint = "[service endpoint]";
const adminKey = "[admin key]";
const client = new SearchIndexClient(endpoint, new AzureKeyCredential(adminKey)
);
// Get index definition
(async () => {
const index = await client.getIndex("[index name]");
console.log(JSON.stringify(index, null, 2));
})();
用于 Python 的 Azure SDK 在此任务的 SearchIndexClient 类中提供get_index。
# Create a SearchIndexClient
endpoint = "[service endpoint]"
admin_key = AzureKeyCredential("[admin key]")
client = SearchIndexClient(endpoint=endpoint, credential=admin_key)
# Get index definition
index = client.get_index("[index name]")
print(json.dumps(index.as_dict(), indent=2, sort_keys=True, ensure_ascii=False))
删除索引
警告
无法撤销已删除的索引。 在继续之前,请确保要从搜索服务中永久删除索引及其文档。
使用首选的 Azure SDK 永久删除索引。
用于 .NET 的 Azure SDK 为此任务提供 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.");
用于 Java 的 Azure SDK 在此任务的 SearchIndexAsyncClient 类中提供deleteIndex。
// Create a SearchIndexAsyncClient
String endpoint = "[service endpoint]";
String adminKey = "[admin key]";
SearchIndexAsyncClient searchIndexAsyncClient = new SearchIndexClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(adminKey))
.buildAsyncClient();
// Delete the index
searchIndexAsyncClient.deleteIndex("[index name]")
.subscribe(
unused -> System.out.println("Index deleted successfully.")
);
用于 JavaScript 的 Azure SDK 在此任务的 SearchIndexClient 类中提供deleteIndex。
// Create a SearchIndexClient
const endpoint = "[service endpoint]";
const adminKey = "[admin key]";
const client = new SearchIndexClient(endpoint, new AzureKeyCredential(adminKey)
);
// Delete the index
(async () => {
await client.deleteIndex("[index name]");
console.log("Index deleted successfully.");
})();
用于 Python 的 Azure SDK 在此任务的 SearchIndexClient 类中提供delete_index。
# Create a SearchIndexClient
endpoint = "[service endpoint]"
admin_key = AzureKeyCredential("[admin key]")
client = SearchIndexClient(endpoint=endpoint, credential=admin_key)
# Delete the index
client.delete_index("[index name]")
print("Index deleted successfully.")
相关内容