Azure AI Search 原名 Azure Cognitive Service,是Azure中用来给AI项目构建知识库的组件。
知识库本质和数据库很像,但是内部的存储结构和检索算法不一样。
比如并不是知识库的每一列都可以用来过滤、检索或group by,而是要根据实际情况配置。

Azure AI Search几个基本概念介绍:
- Index就是类似数据库的一张表,里面可以存放被检索的信息集合。
- Indexer索引生成器,从数据源读取并生成Index的生成器。
- 数据源,可以是Blob,Database
- Skillset,这个很有意思叫技能包,默认的索引生成器功能很简单,对于复杂文档,比如有大量图片的文档,视频或音频,在生成index时要动用到一些独特的技能包即Skillset
在Azure Portal里AI Search提供了Index的在线查询,使用的是它自己定义的一套JSON查询语法,这里给到几个经典查询介绍:

javascript
// 查询某个可以facet的字段,有哪些distinct值
{
"search": "*", // 或空字符串
"top": 0, // 不返回具体文档
"facets": ["category,count:1000"] // 你想看 distinct 值的字段,默认显示10条,通过count指定数量上限
}
//限制返回字段content的上下文
{
"search": "机器学习",
"highlight": "content-40", // 40=返回前/后各 40 个字符
"select": "title,url" // 不返回整段 content
}
//根据某个字段过滤,类似SQL中的where
{
"filter": "category eq 'Electronics'",
"select": "id,name,price"
}
最后补充两点:
-
Azure AI Search Free-tier 只支持16MB以下的文档。
-
Azure Portal里的操作方式:
不支持自定义index结构,复杂场景还是要写代码导入。
-
Storage Blob里配置文件的元属性,AI Search也能自动读到。
