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.
Reciproční Rank Fusion (RRF) je algoritmus, který vyhodnocuje skóre hledání z více dříve seřazených výsledků a vytvoří jednu sjednocenou sadu výsledků. V Azure AI Vyhledávač se RRF používá při paralelním spouštění dvou nebo více dotazů, jako jsou hybridní dotazy a více vektorových dotazů. Každý jednotlivý dotaz vytvoří seřazenou sadu výsledků a RRF je sloučí a homogenizuje do jedné sady výsledků pro odpověď dotazu.
RRF vychází z konceptu recipročního pořadí, což je inverzní funkce k pořadí prvního relevantního dokumentu v seznamu výsledků hledání. Cílem této techniky je vzít v úvahu pozici položek v původním pořadí a dát vyšší důležitost položkám, které jsou seřazeny v několika seznamech. Tento přístup může pomoct zlepšit celkovou kvalitu a spolehlivost konečného pořadí a zvýšit jeho užitečnost pro úkol zařaování více seřazených výsledků hledání.
Jak funguje hodnocení RRF
RRF funguje tak, že vezme výsledky hledání z více metod, přiřadí každému dokumentu ve výsledcích reciproční skóre pořadí a pak zkombinuje skóre a vytvoří nové hodnocení. Koncept spočívá v tom, že dokumenty, které se zobrazují na nejvyšších pozicích napříč několika metodami vyhledávání, budou pravděpodobně relevantnější a měly by být seřazeny výš v kombinovaném výsledku.
Tady je jednoduché vysvětlení procesu RRF:
Získejte seřazené výsledky hledání z více dotazů spuštěných paralelně.
Udělte skóre recipročního pořadí výsledkům v každém seřazeném seznamu. RRF vytvoří novou
@search.scorepro každou shodu v každé sadě výsledků. Pro každý dokument ve výsledcích hledání přiřadí modul reciproční skóre pořadí na základě pozice v seznamu. Skóre se vypočítá jako1/(rank + k), kderankje pozice dokumentu v seznamu akje konstantní. Experimenty ukazují, že algoritmus funguje nejlépe, když nastavítekmalou hodnotu, například 60. Tatokhodnota je konstanta v algoritmu RRF a zcela oddělená odktoho, který řídí počet nejbližších sousedů.Zkombinujte skóre. Pro každý dokument modul sečte reciproční skóre pořadí získané z každého vyhledávacího systému a vytvoří kombinované skóre pro každý dokument.
Modul řadí dokumenty na základě kombinovaných skóre a řadí je. Výsledný seznam je sloučené hodnocení.
K bodování se používají pouze pole označená jako searchable v indexu nebo searchFields v dotazu. Ve výsledcích hledání se vrátí pouze pole označená jako retrievablepole nebo pole zadaná v select dotazu spolu s jejich skóre hledání.
Paralelní provádění dotazů
RRF se používá vždy, když existuje více než jedno spuštění dotazu. Následující příklady ilustrují vzory dotazů, ve kterých dochází k paralelnímu spuštění dotazu:
- Fulltextový dotaz plus jeden vektorový dotaz (jednoduchý hybridní scénář) se rovná dvěma spuštěním dotazů.
- Fulltextový dotaz plus jeden vektorový dotaz, který cílí na dvě vektorová pole, se rovná třem spuštěním dotazu.
- Fulltextový dotaz plus dva vektorové dotazy, které cílí na pět vektorových polí, se rovná 11 provádění dotazů.
Skóre ve výsledcích hybridního hledání
Pokaždé, když jsou výsledky seřazené, @search.score obsahuje vlastnost hodnotu použitou k seřazení výsledků. Skóre se generují algoritmy řazení, které se pro každou metodu liší. Každý algoritmus má svůj vlastní rozsah a velikost.
Následující tabulka identifikuje vlastnost bodování vrácenou pro každou shodu, algoritmus a rozsah skóre pro každý algoritmus hodnocení relevance. Další informace a diagram pracovního postupu vyhodnocování najdete v tématu Relevance ve službě Azure AI Vyhledávač.
| Metoda vyhledávání | Parameter | Algoritmus bodování | Range |
|---|---|---|---|
| Fulltextové vyhledávání | @search.score |
Algoritmus BM25 | Žádný horní limit. |
| vektorové vyhledávání | @search.score |
Algoritmus HNSW, který používá metriku podobnosti zadanou v konfiguraci HNSW. | 0.333 - 1.00 (Kosinus), 0 až 1 pro Euclidean a DotProduct. |
| hybridní vyhledávání | @search.score |
Algoritmus RRF | Horní limit je omezen počtem dotazů, které se sloučí, přičemž každý dotaz přispívá maximálně do 1/k skóre RRF (toto je k parametr v algoritmu RRF, nikoli vektorový dotaz). Sloučením tří dotazů například vznikne vyšší skóre RRF, než kdyby se sloučily pouze dva výsledky hledání. |
| sémantické řazení | @search.rerankerScore |
Sémantické řazení | 0.00 - 4.00 |
Sémantické řazení probíhá po sloučení výsledků RRF. Skóre (@search.rerankerScore) se vždy hlásí samostatně v odpovědi dotazu. Sémantický ranker může přeřadit úplný text a výsledky hybridního hledání za předpokladu, že tyto výsledky obsahují pole s sémanticky bohatým obsahem. Dotazy čistě vektorů se dají přeřadit, pokud hledané dokumenty obsahují textová pole, která obsahují sémanticky relevantní obsah.
Rozbalení skóre hledání do dílčích skóre
Pokud chcete zobrazit jeho dílčí skóre, můžete rozložit skóre hledání. U vektorových dotazů vám tyto informace můžou pomoct určit odpovídající hodnotu pro vážení vektorů nebo nastavit minimální prahové hodnoty.
Chcete-li získat dílčí skóre:
Použijte rozhraní REST API pro vyhledávání dokumentů nebo balíček sady Azure SDK, který tuto funkci poskytuje.
Upravte požadavek dotazu a přidejte novou
debugsadu parametrů navectorbuď ,semanticpokud používáte sémantický ranker, neboall.
Zde je příklad hybridního dotazu, který v režimu ladění vrací dílčí skóre:
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"k": 10
},
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"k": 10
}
],
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelName, Description, Address/City",
"debug": "vector",
"top": 10
}
Vážené skóre
Dotazy vektorů můžete váhovat, abyste zvýšili nebo snížili jejich důležitost v hybridním dotazu.
Vzpomeňte si, že při výpočtu RRF pro určitý dokument prohledá vyhledávací modul pořadí tohoto dokumentu pro každou sadu výsledků, ve které se zobrazí. Předpokládejme, že se dokument zobrazuje ve třech samostatných výsledcích hledání, kde výsledky pocházejí ze dvou vektorových dotazů a jednoho textového dotazu seřazeného BM25. Umístění dokumentu se liší v každém výsledku.
| Nalezena shoda | Umístění ve výsledcích | @search.score | násobitel hmotnosti | @search.score (vážený) |
|---|---|---|---|---|
| výsledky vektoru jeden | pozice 1 | 0.8383955 | 0.5 | 0.41919775 |
| vektorové výsledky 2 | pozice 5 | 0.81514114 | 2.0 | 1.63028228 |
| Výsledky BM25 | pozice 10 | 0.8577363 | NA | 0.8577363 |
Pozice dokumentu v každé sadě výsledků odpovídá počátečnímu skóre, které se přidá k vytvoření konečného skóre RRF pro daný dokument.
Pokud přidáte vektorovou váhu, počáteční skóre se řídí násobitelem váhy, který zvýší nebo sníží skóre. Výchozí hodnota je 1,0, což znamená, že se nebere váhou a počáteční skóre se použije tak, jak je v bodování RRF. Pokud ale přidáte váhu 0,5, skóre se sníží a výsledek bude v kombinovaném pořadí méně důležitý. Pokud naopak přidáte váhu 2,0, bude skóre hrát větší roli v celkovém skóre RRF.
V tomto příkladu @search.score (vážené) hodnoty přejdou na model hodnocení RRF.
Počet seřazených výsledků v odpovědi hybridního dotazu
Pokud ve výchozím nastavení nepoužíváte stránkování, vrátí vyhledávač 50 nejlepších shod pro fulltextové vyhledávání a nejvíce podobné k shody pro vektorové vyhledávání. V hybridním dotazu top určuje počet výsledků v odpovědi. Na základě výchozího nastavení se vrátí 50 nejvýše hodnocených shod ze sjednocené sady výsledků.
Vyhledávač často najde více výsledků než top a k. Pokud chcete vrátit více výsledků, použijte parametry topstránkování , skipa next. Pomocí stránkování určíte počet výsledků na každé logické stránce a můžete procházet celou datovou sadu. Pokud chcete vrátit další výsledky z textové strany hybridního dotazu, můžete nastavit maxTextRecallSize na větší hodnoty (výchozí hodnota je 1 000).
Fulltextové vyhledávání ve výchozím nastavení podléhá maximálnímu limitu 1 000 shod (viz limity odpovědí rozhraní API). Jakmile se najde 1 000 shod, vyhledávací web už nebude hledat víc.
Další informace naleznete v tématu Jak pracovat s výsledky hledání.