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