Azure認知搜索(以前稱為“Azure搜索”)是一種云搜索服務,它為開發(fā)人員提供API和工具,以便基于Web、移動和企業(yè)應用程序中的專用異類內(nèi)容構(gòu)建豐富的搜索體驗。
創(chuàng)建認知搜索服務時,你將獲得一個進行索引編制和執(zhí)行查詢的搜索引擎、你創(chuàng)建和管理的索引的持久存儲,以及用于編寫從簡單到復雜的查詢的查詢語言??梢赃x擇讓搜索服務以“索引器”(自動從Azure數(shù)據(jù)源引入/檢索數(shù)據(jù))和“技能組”(引入認知服務(例如圖像和文本分析)中的可消耗AI,或者引入你在Azure機器學習中創(chuàng)建的或在Azure Functions內(nèi)包裝的自定義AI)的形式與其他Azure服務集成。
Azure認知搜索體系結(jié)構(gòu)
從體系結(jié)構(gòu)方面來講,搜索服務位于外部數(shù)據(jù)存儲(包含未索引數(shù)據(jù))與客戶端應用(向搜索索引發(fā)送查詢請求并處理響應)之間。索引架構(gòu)決定了可搜索內(nèi)容的結(jié)構(gòu)。
搜索服務的兩個主要工作負荷是索引編制和查詢。
索引編制將文本插入到搜索服務中,并使其可供搜索。在內(nèi)部,將入站文本處理到令牌中,并將其存儲在逆選索引中,以便快速掃描。在編制索引期間,可選擇添加認知技能:來自Microsoft的預定義技能,或者你創(chuàng)建的自定義技能。后續(xù)的分析和轉(zhuǎn)換可能會導致生成以前不存在的新信息和結(jié)構(gòu),為許多搜索和知識挖掘方案提供高實用性。
使用可搜索的數(shù)據(jù)填充索引后,客戶端應用會將查詢請求發(fā)送到搜索服務,并處理響應。所有查詢執(zhí)行都基于你在服務中創(chuàng)建、擁有和存儲的搜索索引。在客戶端應用中,搜索體驗是使用Azure認知搜索中的API定義的,可能包括相關(guān)性調(diào)整、自動完成、同義詞匹配、模糊匹配、模式匹配、篩選和排序。
功能通過簡單的REST API或.NET SDK公開,消除了信息檢索固有的復雜性。你還可以使用Azure門戶,通過用于原型制作以及查詢索引和技能組的工具進行服務管理和內(nèi)容管理。因為服務在云中運行,所以基礎結(jié)構(gòu)和可用性由Microsoft管理。
何時使用認知搜索
Azure認知搜索非常適合以下應用方案:
將異構(gòu)內(nèi)容類型整合成專用的用戶定義的搜索索引??梢栽谒阉魉饕刑畛鋪碜匀魏卧吹腏SON文檔流。對于Azure上支持的源,請使用索引器來自動編制索引。對索引架構(gòu)和刷新計劃進行控制是使用認知搜索的主要原因。
輕松實現(xiàn)搜索相關(guān)的功能。搜索API簡化了查詢構(gòu)造、分面導航、篩選器(包括地理空間搜索)、同義詞映射、自動完成和相關(guān)性優(yōu)化。使用內(nèi)置功能可以滿足最終用戶對搜索體驗的預期,使其覺得該體驗類似于商用Web搜索引擎。
原始內(nèi)容是Azure Blob存儲或Cosmos DB中存儲的大型無差別文本、圖像文件或應用程序文件。在索引編制期間,你可以應用認知技能來識別和提取文本、創(chuàng)建結(jié)構(gòu)或創(chuàng)建新信息(例如已翻譯的文本或?qū)嶓w)。
內(nèi)容需要語言分析或自定義文本分析。如果你使用非英語內(nèi)容,Azure認知搜索支持Lucene分析器和Microsoft的自然語言處理器。還可以配置分析器以實現(xiàn)原始內(nèi)容的專業(yè)處理,例如篩選出標注字符,或識別并保留字符串中的模式。
有關(guān)特定功能的詳細信息,請參閱Azure認知搜索的功能
如何使用認知搜索
步驟1:預配服務
可以創(chuàng)建免費服務與其他訂閱者共享,也可以創(chuàng)建一個付費層,其中的資源專供你的服務使用。所有快速入門和教程都可以通過免費服務完成。
對于付費層,你可以在兩個維度中縮放服務,以根據(jù)生產(chǎn)要求校準資源:
添加副本以增長容量來處理重型查詢負載
添加分區(qū)以便為更多文檔增加存儲
步驟2:創(chuàng)建索引
定義要映射的索引架構(gòu),以反映要搜索的文檔的結(jié)構(gòu),這類似于數(shù)據(jù)庫中的字段。搜索索引是一種專用的數(shù)據(jù)結(jié)構(gòu),經(jīng)過優(yōu)化后可快速執(zhí)行查詢。
通常在Azure門戶中創(chuàng)建索引架構(gòu),或者使用.NET SDK或REST API以編程方式創(chuàng)建。
提示
從快速入門:導入數(shù)據(jù)向?qū)ч_始,在幾分鐘內(nèi)創(chuàng)建、加載和查詢索引。
步驟3:加載數(shù)據(jù)
定義索引后,便可以上傳內(nèi)容??梢允褂猛扑突蛱崛∧P?。
推送模型使用SDK或REST中的API將JSON文檔“推送”到索引。外部數(shù)據(jù)集幾乎可以是任何數(shù)據(jù)源,只要文檔是JSON即可。
拉取模型從Azure上的源中“拉取”數(shù)據(jù),并將其發(fā)送到搜索索引。拉取模型是通過索引器實現(xiàn)的。索引器可以簡化和自動化數(shù)據(jù)引入的方方面面,例如,連接、讀取和序列化數(shù)據(jù)。支持的數(shù)據(jù)源包括Azure Cosmos DB、Azure SQL和Azure存儲。
步驟4:發(fā)送查詢并處理響應
填充索引后,可以通過將簡單的HTTP請求與REST API或.NET SDK結(jié)合使用,向服務終結(jié)點發(fā)出搜索查詢。
逐步完成創(chuàng)建第一個搜索應用以進行構(gòu)建,然后擴展用于收集用戶輸入并處理結(jié)果的網(wǎng)頁。還可以使用Postman進行交互式REST調(diào)用,或使用Azure門戶中內(nèi)置的搜索瀏覽器來查詢現(xiàn)有索引。
它如何進行比較
客戶常常詢問Azure認知搜索與其他搜索相關(guān)解決方案有何不同。下表總結(jié)主要區(qū)別。