用途:Azure.Search.Documents 是 Azure AI Search 的 .NET 客户端库,用于构建支持全文、向量、语义和混合搜索的搜索应用。
主要能力:通过 SearchClient 查询索引并上传、更新、删除文档;通过 SearchIndexClient 创建和管理索引、同义词映射;通过 SearchIndexerClient 管理索引器、技能组和数据源。支持筛选、排序、分面、自动补全、建议、纯向量搜索、语义排序(含标题与答案)以及向量+关键字+语义的混合搜索。
安装与环境变量:
dotnet add package Azure.Search.Documents dotnet add package Azure.Identity
SEARCH_ENDPOINT=https://<search-service>.search.windows.net SEARCH_INDEX_NAME=<index-name> SEARCH_API_KEY=<api-key>(API 密钥认证,不建议用于生产)
认证:推荐 DefaultAzureCredential,创建 SearchClient 时传入 endpoint、indexName 与凭据;也可使用 AzureKeyCredential 进行 API 密钥认证。
索引:可用 FieldBuilder 配合模型特性(SimpleField、SearchableField、VectorSearchField 等)生成字段,或手动定义字段,再用 CreateOrUpdateIndexAsync 幂等创建。文档操作支持 Upload、Merge、MergeOrUpload、Delete 及批量 IndexDocumentsBatch。搜索可配置 Filter、OrderBy、Select、Size、Skip、IncludeTotalCount,并支持分面、自动补全与建议。
限制与说明:仅适用于与上述能力匹配的任务;输出不能替代针对具体环境的验证、测试或专家审查;缺少必要输入、权限、安全边界或成功标准时应先确认。更多向量与语义搜索细节见参考文件 references/vector-search.md 和 references/semantic-search.md。
最佳实践:生产环境优先用 DefaultAzureCredential 而非 API 密钥;用 FieldBuilder 实现类型安全索引;用 CreateOrUpdateIndexAsync 幂等创建;批量文档操作提升吞吐;用 Select 仅返回所需字段;为自然语言查询配置语义搜索;结合向量、关键字与语义获得最佳相关性。