Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Hybridní vyhledávání je jeden požadavek dotazu nakonfigurovaný pro fulltextové i vektorové dotazy. Je spouštěn na vyhledávacím indexu, který obsahuje prohledávatelný obsah ve formátu prostého textu a vygenerované vložené reprezentace. Pro účely dotazů hybridní vyhledávání:
- Jedná se o jediný požadavek, který obsahuje jak parametr dotazu
search, tak parametr dotazuvectorQueries. - Spouští fulltextové vyhledávání a vektorové vyhledávání paralelně.
- Sloučí výsledky z každého dotazu pomocí Reciprocal Rank Fusion (RRF).
Tento článek vysvětluje koncepty, výhody a omezení hybridního vyhledávání. Odkazy na konci obsahují pokyny k používání a další kroky. Můžete se také podívat na vložené video s vysvětlením toho, jak hybridní načítání přispívá k vysoce kvalitním aplikacím generování vyhledávání.
Proč používat hybridní vyhledávání?
Hybridní vyhledávání kombinuje silné stránky vektorového vyhledávání a hledání klíčových slov. Výhodou vektorového vyhledávání je hledání informací, které jsou koncepčně podobné vašemu vyhledávacímu dotazu, i když v invertovaném indexu neexistují žádné shody klíčových slov. Výhodou klíčového slova nebo fulltextového vyhledávání je přesnost s možností použít volitelné sémantické hodnocení, které zlepšuje kvalitu počátečních výsledků. Některé scénáře, jako je dotazování na kódy produktů, vysoce specializované žargon, data a jména lidí, fungují lépe s hledáním klíčových slov, protože dokáže identifikovat přesné shody.
Srovnávací testování na reálných a srovnávacích datových sadách ukazuje, že hybridní vyhledávání se sémantickým rankerem nabízí významné výhody v relevanci vyhledávání.
Následující video vysvětluje, jak hybridní načítání poskytuje optimální základní data pro generování užitečných odpovědí umělé inteligence.
Jak funguje hybridní vyhledávání?
V indexu vyhledávání jsou vektorová pole obsahující vložená pole společně s textovými a číselnými poli. Můžete formulovat hybridní dotazy, které se spouštějí současně. Hybridní dotazy využívají stávající funkce založené na textu, jako je filtrování, fasety, řazení, bodovací profily a sémantické řazení textových polí a provádění vyhledávání podobnosti s vektory v jediné žádosti o vyhledávání.
Hybridní vyhledávání kombinuje výsledky z fulltextových i vektorových dotazů, které používají různé funkce řazení, jako je BM25 pro text, a hierarchický pohyblivý malý svět (HNSW) a vyčerpávající K Nearest Neighbors (eKNN) pro vektory. Algoritmus RRF sloučí výsledky. Odpověď dotazu poskytuje pouze jednu sadu výsledků s použitím RRF k seřazení sjednocených výsledků.
Struktura hybridního dotazu
Hybridní vyhledávání spoléhá na index vyhledávání, který obsahuje pole různých datových typů, včetně prostého textu a čísel, geografických souřadnic, pokud chcete, aby geoprostorové vyhledávání a vektory matematicky představovaly blok textu. V Azure AI Vyhledávač můžete použít téměř všechny možnosti dotazů s vektorovým dotazem, s výjimkou interakcí na straně klienta s čistým textem, jako jsou automatické dokončování a návrhy.
Reprezentativní hybridní dotaz může vypadat takto. Pro stručnost mají vektorové dotazy zástupné hodnoty.
POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2026-04-01
content-type: application/JSON
{
"count": true,
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelId, HotelName, Category, Description, Address/City, Address/StateProvince",
"filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
"vectorFilterMode": "postFilter",
"facets": [ "Address/StateProvince"],
"vectorQueries": [
{
"kind": "vector",
"vector": [ <array of embeddings> ],
"k": 50,
"fields": "DescriptionVector",
"exhaustive": true,
"oversampling": 20
},
{
"kind": "vector",
"vector": [ <array of embeddings> ],
"k": 50,
"fields": "Description_frVector",
"exhaustive": false,
"oversampling": 10
}
],
"skip": 0,
"top": 10,
"queryType": "semantic",
"queryLanguage": "en-us",
"semanticConfiguration": "my-semantic-config"
}
klíčové body:
-
searchurčuje jeden fulltextový vyhledávací dotaz. -
vectorQueriesurčuje vektorové dotazy, které mohou být vícenásobné a cílí na více vektorových polí. Pokud prostor pro vložení obsahuje vícejazyčný obsah, vektorové dotazy můžou najít shodu bez analyzátorů jazyka nebo překladu. Pokud používáte sémantický ranker, nastavtekna 50, aby se maximalizovaly vstupy. -
selecturčuje, která pole se mají vrátit do výsledků, což by měla být textová pole čitelná pro člověka, pokud je zobrazujete uživatelům nebo je odesíláte do velkého jazykového modelu (LLM). -
filtermůže určit geoprostorové vyhledávání nebo jiná kritéria zahrnutí a vyloučení, například zda je parkoviště zahrnuto. Geoprostorový dotaz v tomto příkladu najde hotely v okruhu 300 kilometrů od Washingtonu, D.C. Filtr můžete použít na začátku nebo na konci zpracování dotazu. Pokud používáte sémantický ranker, pravděpodobně budete chtít jako poslední krok použít dodatečné filtrování, ale měli byste otestovat, které řešení je pro vaše dotazy nejvhodnější. -
facetslze použít k výpočtu facety nad výsledky, které se vrací z hybridních dotazů. -
queryType=semanticvyvolá sémantický ranker, který používá porozumění strojovému čtení k zobrazení relevantnějších výsledků hledání. Sémantické řazení je volitelné. Pokud tuto funkci nepoužíváte, odeberte poslední tři řádky hybridního dotazu.
Filtry a fasety cílí na datové struktury v indexu, které se liší od invertovaných indexů, které se používají pro fulltextové vyhledávání, a vektorových indexů pro vektorové vyhledávání. Když se například spustí filtry a fasetové operace, může vyhledávací modul v odpovědi použít provozní výsledek na výsledky hybridního hledání.
Všimněte si, že v dotazu není žádná orderby . Explicitní pořadí řazení přepíší výsledky seřazené podle relevance, takže pokud chcete podobnost a relevanci BM25, vynechejte řazení v dotazu.
Odpověď z dotazu může vypadat jako následující JSON.
{
"@odata.count": 3,
"@search.facets": {
"Address/StateProvince": [
{
"count": 1,
"value": "NY"
},
{
"count": 1,
"value": "VA"
}
]
},
"value": [
{
"@search.score": 0.03333333507180214,
"@search.rerankerScore": 2.5229012966156006,
"HotelId": "49",
"HotelName": "Swirling Currents Hotel",
"Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.",
"Category": "Luxury",
"Address": {
"City": "Arlington",
"StateProvince": "VA"
}
},
{
"@search.score": 0.032522473484277725,
"@search.rerankerScore": 2.111117362976074,
"HotelId": "48",
"HotelName": "Nordick's Valley Motel",
"Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer. Hiking? Wine Tasting? Exploring the caverns? It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.",
"Category": "Boutique",
"Address": {
"City": "Washington D.C.",
"StateProvince": null
}
}
]
}