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也能自動讀到。