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.
Poznámka
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.
Important
Na funkce, možnosti nebo vlastnosti označené jako (Preview) se nevztahuje smlouva o úrovni služeb, nejsou doporučené pro produkční úlohy a mohou se změnit nebo být omezeny dříve, než budou obecně k dispozici. Podmínky Azure AI Vyhledávač Preview platí pro všechny funkce ve verzi Preview, ať už jsou samostatné nebo součástí obecně dostupné funkce.
Přepsání dotazu (Preview) je proces transformace dotazu uživatele na efektivnější, přidání dalších termínů a upřesnění výsledků hledání. Vyhledávací služba odešle vyhledávací dotaz (nebo jeho variantu) do generujícího modelu, který generuje alternativní dotazy.
Přepsání dotazů zlepšuje výsledky z sémantického řazení tím, že opravuje překlepy nebo pravopisné chyby v uživatelských dotazech a rozšiřuje dotazy pomocí synonym.
Vyhledávání s přepisem dotazů funguje takto:
- Dotaz uživatele se odešle prostřednictvím vlastnosti
searchv požadavku. - Vyhledávací služba odešle vyhledávací dotaz (nebo jeho variantu) do generujícího modelu, který generuje alternativní dotazy.
- Vyhledávací služba používá původní dotaz a přepsané dotazy k načtení výsledků hledání.
Přepisování dotazů je volitelná funkce. Bez přepsání dotazu vyhledávací služba pouze používá původní dotaz k načtení výsledků hledání.
Poznámka
Přepsané dotazy nemusí obsahovat všechny přesné termíny, které původní dotaz měl. To může mít vliv na výsledky hledání, pokud byl dotaz vysoce specifický a vyžadoval přesné shody pro jedinečné identifikátory nebo kódy produktů.
Požadavky
Azure AI Vyhledávač v libovolné oblasti , která poskytuje přepis dotazů.
Existující index vyhledávání s sémantickou konfigurací a obsahem ve formátu RTF. Příklady v této příručce používají ukázkový index hotelů k demonstraci přepisu dotazů.
Pokud chcete postupovat podle pokynů v tomto článku, potřebujete webového klienta, který podporuje požadavky rozhraní REST API. Příklady v tomto článku byly testovány pomocí rozšíření Visual Studio Code a rozšíření REST Client.
Tip
Obsah obsahující vysvětlení nebo definice fungují nejlépe pro sémantické řazení.
Vytvoření požadavku hledání s přepsáním dotazu
V tomto příkladu rozhraní REST API použijte k formulaci požadavku pomocí Vyhledání dokumentů (náhled).
Vložte následující požadavek do webového klienta jako šablonu.
POST https://[search-service-name].search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-08-01-preview { "search": "newer hotel near the water with a great restaurant", "semanticConfiguration":"en-semantic-config", "queryType":"semantic", "queryRewrites":"generative|count-5", "queryLanguage":"en-US", "debug":"queryRewrites", "top": 1 }Nahraďte
search-service-namenázvem vyhledávací služby.Pokud se liší, nahraďte
hotels-samplenázvem indexu.Nastavte "search" na fulltextový vyhledávací dotaz. Vlastnost vyhledávání se vyžaduje pro přepsání dotazu, pokud nezadáte vektorové dotazy. Pokud zadáte vektorové dotazy, text "search" musí odpovídat
"text"vlastnosti objektu"vectorQueries". Hledaný řetězec může podporovat jednoduchou syntaxi nebo úplnou syntaxi Lucene.Nastavte "semanticConfiguration" na předdefinovanou semantickou konfiguraci vloženou do indexu.
Nastavte "queryType" na "sémantic". Buď je potřeba nastavit "queryType" na "semantic", nebo zahrnout vlastnost "semanticQuery", která nezůstane prázdná, do požadavku. Pro přepis dotazů se vyžaduje sémantické řazení.
Nastavte "queryRewrites" na "generative|count-5", pokud chcete získat až pět přepisů dotazů. Počet můžete nastavit na libovolnou hodnotu mezi 1 a 10.
Vzhledem k tomu, že jste požádali o přepsání dotazu nastavením vlastnosti "queryRewrites", musíte nastavit "queryLanguage" na hledaný textový jazyk. Vyhledávací služba používá stejný jazyk pro přepsání dotazu. V tomto příkladu použijete "en-US". Mezi podporovaná národní prostředí patří:
en-AU,en-CA,en-GB,en-IN,en-US,ar-EG,ar-JO,ar-KW,ar-MA,ar-SA,bg-BG,bn-IN,ca-ES,cs-CZ,da-DK,de-DE,el-GR,es-ES,es-MX,et-EE,eu-ES,fa-AE,fi-FI,fr-CA,fr-FR,ga-IE,gl-ES,gu-IN,he-IL,hi-IN,hr-BA,hr-HR,hu-HU,hy-AM,id-ID,is-IS,it-IT,ja-JP,kn-IN,ko-KR,lt-LT,lv-LV,ml-IN,mr-IN,ms-BN,ms-MY,nb-NO,nl-BE,nl-NL,no-NO,pa-IN,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sr-BA,sr-ME,sr-RS,sv-SE,ta-IN,te-IN,th-TH,tr-TR,uk-UA,ur-PK,vi-VN,zh-CN,zh-TW.Pokud chcete získat přepsání dotazu v odpovědi, nastavte "debug" na "queryRewrites".
Tip
Nastavte
"debug": "queryRewrites"pouze pro účely testování. Pro lepší výkon nepoužívejte ladění v produkčním prostředí.Pokud chcete vrátit jenom nejlepší výsledek hledání, nastavte hodnotu "top" na 1.
Odešlete žádost o provedení dotazu a vrátí výsledky.
V dalším kroku vyhodnotíte výsledky hledání přepsáním dotazu.
Vyhodnocení odpovědi
Tady je příklad odpovědi, která obsahuje přepracování dotazů:
"@search.debug": {
"semantic": null,
"queryRewrites": {
"text": {
"inputQuery": "newer hotel near the water with a great restaurant",
"rewrites": [
"new waterfront hotels with top-rated eateries",
"new waterfront hotels with top-rated restaurants",
"new waterfront hotels with excellent dining",
"new waterfront hotels with top-rated dining",
"new water-side hotels with top-rated restaurants"
]
},
"vectors": []
}
},
"value": [
{
"@search.score": 58.992092,
"@search.rerankerScore": 2.815633535385132,
"HotelId": "18",
"HotelName": "Ocean Water Resort & Spa",
"Description": "New Luxury Hotel for the vacation of a lifetime. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
"Description_fr": "Nouvel h\u00f4tel de luxe pour des vacances inoubliables. Vue sur la baie depuis chaque chambre, emplacement pr\u00e8s de la jet\u00e9e, piscine sur le toit, restaurant au bord de l'eau et plus encore.",
"Category": "Luxury",
"Tags": [
"view",
"pool",
"restaurant"
],
"ParkingIncluded": true,
"LastRenovationDate": "2020-11-14T00:00:00Z",
"Rating": 4.2,
"Location": {
"type": "Point",
"coordinates": [
-82.537735,
27.943701
],
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4326"
}
}
},
//... more properties redacted for brevity
}
]
Tady je několik klíčových bodů, které je potřeba poznamenat:
- Vzhledem k tomu, že vlastnost "debug" nastavíte na "queryRewrites" pro testování, odpověď obsahuje
@search.debugobjekt s textovým vstupním dotazem a přepsáním dotazu. - Protože vlastnost queryRewrites nastavíte na generative|count-5, odpověď obsahuje až pět přepisů dotazů.
- Hodnota
"inputQuery"je dotaz odeslaný do generujícího modelu pro přepisování dotazů. Vstupní dotaz není vždy stejný jako dotaz uživatele"search".
Tady je příklad odpovědi bez přepsání dotazu.
"@search.debug": {
"semantic": null,
"queryRewrites": {
"text": {
"inputQuery": "",
"rewrites": []
},
"vectors": []
}
},
"value": [
{
"@search.score": 7.774868,
"@search.rerankerScore": 2.815633535385132,
"HotelId": "18",
"HotelName": "Ocean Water Resort & Spa",
"Description": "New Luxury Hotel for the vacation of a lifetime. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
"Description_fr": "Nouvel h\u00f4tel de luxe pour des vacances inoubliables. Vue sur la baie depuis chaque chambre, emplacement pr\u00e8s de la jet\u00e9e, piscine sur le toit, restaurant au bord de l'eau et plus encore.",
"Category": "Luxury",
"Tags": [
"view",
"pool",
"restaurant"
],
"ParkingIncluded": true,
"LastRenovationDate": "2020-11-14T00:00:00Z",
"Rating": 4.2,
"Location": {
"type": "Point",
"coordinates": [
-82.537735,
27.943701
],
"crs": {
"type": "name",
"properties": {
"name": "EPSG:4326"
}
}
},
//... more properties redacted for brevity
}
]
Vektorové dotazy s přepsáním dotazu
Do požadavku hledání můžete zahrnout vektorové dotazy, které kombinují hledání klíčových slov a vektorové vyhledávání do jednoho požadavku a jednotné odpovědi.
Tady je příklad dotazu, který obsahuje vektorový dotaz s přepsáním dotazu. Upravte předchozí příklad tak, aby zahrnoval vektorový dotaz.
- Přidejte do požadavku objekt vectorQueries. Tento objekt obsahuje vektorový dotaz s typem nastaveným na text.
- Hodnota "text" je stejná jako hodnota "search". Tyto hodnoty musí být identické, aby přepisování dotazů fungovalo.
POST https://[search-service-name].search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-08-01-preview
{
"search": "newer hotel near the water with a great restaurant",
"vectorQueries": [
{
"kind": "text",
"text": "newer hotel near the water with a great restaurant",
"k": 50,
"fields": "Description",
"queryRewrites": "generative|count-3"
}
],
"semanticConfiguration":"en-semantic-config",
"queryType":"semantic",
"queryRewrites":"generative|count-5",
"queryLanguage":"en-US",
"top": 1
}
Odpověď zahrnuje přepsání dotazu pro textový dotaz i vektorový dotaz.
Otestujte přepsání dotazů pomocí ladicího režimu
Měli byste otestovat přepsání dotazu, abyste měli jistotu, že fungují podle očekávání.
"debug": "queryRewrites" Nastavte vlastnost v požadavku dotazu, aby se dotaz v odpovědi přepsal. Nastavení "debug" je volitelné pro účely testování. Pro lepší výkon nenastavujte tuto vlastnost v produkčním prostředí.
Částečné důvody odpovědi
Můžete si všimnout, že odpověď z ladění (testování) obsahuje prázdné pole pro vlastnosti text.rewrites a vectors.
{
"@odata.context": "https://demo-search-svc.search.windows.net/indexes('hotels-sample')/$metadata#docs(*)",
"@search.debug": {
"semantic": null,
"queryRewrites": {
"text": {
"rewrites": []
},
"vectors": []
}
},
"@search.semanticPartialResponseReason": "Transient",
"@search.semanticQueryRewriteResultType": "OriginalQueryOnly",
//... more properties redacted for brevity
}
V předchozím příkladu:
- Odpověď obsahuje
@search.semanticPartialResponseReasonvlastnost s hodnotou "Přechodné". Tato zpráva znamená, že se alespoň jeden z dotazů nepodařilo dokončit. - Odpověď také obsahuje
@search.semanticQueryRewriteResultTypevlastnost s hodnotou OriginalQueryOnly. Tato zpráva znamená, že přepisy dotazu nejsou k dispozici. K načtení výsledků hledání se používá pouze původní dotaz.
Další kroky
Sémantické řazení lze použít v hybridních dotazech, které kombinují vyhledávání klíčových slov a vektorové vyhledávání do jednoho požadavku a jednotné odpovědi.