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.
Při vytváření dotazů pro Azure AI Vyhledávač můžete nahradit výchozí analyzátor dotazů simple výkonnějším analyzátorem dotazů Lucene formulovat specializované a pokročilé výrazy dotazů.
Analyzátor Lucene podporuje složité formáty dotazů, jako jsou dotazy omezené na pole, neurčité vyhledávání, vyhledávání s infixem a příponami, proximní vyhledávání, zvýšení relevance termínu a vyhledávání regulárních výrazů. Dodatečný výkon má více požadavků na zpracování, takže byste měli očekávat o něco delší dobu provádění. V tomto článku si můžete projít příklady, které demonstrují operace dotazů na základě úplné syntaxe.
Poznámka:
Mnoho specializovaných konstrukcí dotazů, které umožňuje úplná syntaxe dotazů Lucene, není analyzováno jako text, což může být překvapivé, pokud očekáváte stemmování nebo lemmatizaci. Lexikální analýza se provádí pouze s úplnými termíny (dotaz na termín nebo dotaz frází). Typy dotazů s neúplnými termíny (dotaz s předponou, zástupný dotaz, dotaz regex, přibližný dotaz) se přidají přímo do stromu dotazů a obcházejí fázi analýzy. Jedinou transformací provedenou u částečných termínů dotazů je převod na malá písmena.
Ukázkový index hotelů
Následující dotazy jsou založené na ukázkovém indexu hotelů, který můžete vytvořit podle pokynů v Quickstart: Fulltextové vyhledávání v Azure portal.
Příklady dotazů jsou vyjádřeny pomocí rozhraní REST API a požadavků POST. Můžete je vložit a spustit v klientovi REST. Nebo použijte zobrazení JSON Search Explorer v Azure portal. V zobrazení JSON můžete vložit příklady dotazů uvedené zde v tomto článku.
Hlavičky požadavku musí mít následující hodnoty:
| Klíč | Hodnota |
|---|---|
| Typ obsahu | application/json |
| API klíč |
<your-search-service-api-key>– dotaz nebo klíč správce |
Parametry identifikátoru URI musí obsahovat váš koncový bod search service s názvem indexu, kolekcemi docs, příkazem pro vyhledávání a verzí rozhraní API, podobně jako v následujícím příkladu:
https://{{service-name}}.search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-04-01
Text požadavku by se měl vytvořit jako platný JSON:
{
"search": "*",
"queryType": "full",
"select": "HotelId, HotelName, Category, Tags, Description",
"count": true
}
searchnastavená na * je nespecifikovaný dotaz, který odpovídá hledání s hodnotou null nebo prázdným vyhledáváním. Není to zvlášť užitečné, ale je to nejjednodušší hledání, které můžete udělat, a zobrazuje všechna zobrazitelná pole v indexu se všemi hodnotami.queryTypeHodnota nastavená na úplné vyvolá úplný analyzátor dotazů Lucene a pro tuto syntaxi je vyžadována.selectnastaveno jako seznam polí oddělených čárkami slouží ke skládání výsledků vyhledávání a zahrnuje pouze ta pole, která jsou užitečná v kontextu výsledků hledání.countvrátí počet dokumentů odpovídajících kritériím hledání. U prázdného dotazu vyhledávání je počet všech dokumentů nalezených v indexu (50 v indexu s ukázkovými hotely).
Příklad 1: Hledání v poli
Vyhledávání omezené na pole zahrnuje jednotlivé, vložené vyhledávací výrazy do konkrétního pole. Tento příklad hledá názvy hotelů s termínem hotel v nich, ale ne motel. Můžete zadat více polí pomocí AND.
Pokud použijete tuto syntaxi dotazu, můžete parametr vynechat searchFields , pokud jsou pole, která chcete dotazovat, v samotném hledaném výrazu. Pokud zahrnete searchFields pole hledání, fieldName:searchExpression bude mít vždy přednost před searchFields.
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "HotelName:(hotel NOT motel) AND Category:'Boutique'",
"queryType": "full",
"select": "HotelName, Category",
"count": true
}
Odpověď na tento dotaz by měla vypadat podobně jako následující příklad, filtrované na základě Boutique, vracející hotely, které zahrnují hotel v názvu, při vyloučení výsledků, které zahrnují motel v názvu.
{
"@odata.count": 5,
"value": [
{
"@search.score": 2.2289815,
"HotelName": "Stay-Kay City Hotel",
"Category": "Boutique"
},
{
"@search.score": 1.3862944,
"HotelName": "City Skyline Antiquity Hotel",
"Category": "Boutique"
},
{
"@search.score": 1.355046,
"HotelName": "Old Century Hotel",
"Category": "Boutique"
},
{
"@search.score": 1.355046,
"HotelName": "Sublime Palace Hotel",
"Category": "Boutique"
},
{
"@search.score": 1.355046,
"HotelName": "Red Tide Hotel",
"Category": "Boutique"
}
]
}
Hledaný výraz může být jeden termín nebo fráze nebo složitější výraz v závorkách, volitelně s logickými operátory. Mezi příklady patří:
HotelName:(hotel NOT motel)Address/StateProvince:("WA" OR "CA")Tags:("free wifi" NOT "free parking") AND "coffee in lobby"
Pokud chcete, aby se oba řetězce vyhodnotily jako jedna entita, nezapomeňte je vložit do uvozovek, stejně jako v tomto případě, kdy hledáte dvě různá umístění v poli Address/StateProvince. V závislosti na klientovi možná budete muset označit \ uvozovky.
Pole zadané v fieldName:searchExpression poli musí být prohledávatelné pole. Informace o atributech definic polí najdete v tématu Vytvoření indexu (REST API).
Příklad 2: Fuzzy vyhledávání
Přibližné vyhledávání nachází termíny, které jsou podobné, včetně chybně napsaných slov. Pro provedení přibližného vyhledávání připojte symbol vlnovky ~ na konec jednoho slova s volitelným parametrem – hodnotou mezi 0 a 2, která určuje vzdálenost úprav. Například blue~ nebo blue~1 by vrátilo modrá, modré a lepidlo.
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "Tags:conserge~",
"queryType": "full",
"select": "HotelName, Category, Tags",
"searchFields": "HotelName, Category, Tags",
"count": true
}
Odpověď pro tento dotaz se vyhodnocuje na concierge ve shodných dokumentech, zkrácená kvůli stručnosti.
{
"@odata.count": 9,
"value": [
{
"@search.score": 1.4947624,
"HotelName": "Twin Vortex Hotel",
"Category": "Luxury",
"Tags": [
"bar",
"restaurant",
"concierge"
]
},
{
"@search.score": 1.1685618,
"HotelName": "Stay-Kay City Hotel",
"Category": "Boutique",
"Tags": [
"view",
"air conditioning",
"concierge"
]
},
{
"@search.score": 1.1465473,
"HotelName": "Old Century Hotel",
"Category": "Boutique",
"Tags": [
"pool",
"free wifi",
"concierge"
]
},
. . .
]
}
Fráze nejsou podporované přímo, ale u každého termínu vícedílné fráze, například search=Tags:landy~ AND sevic~, můžete zadat přibližnou shodu. Tento výraz dotazu najde 15 shod ve službě praní prádla.
Poznámka:
Neanalyzuje se přibližné dotazy. Typy dotazů s neúplnými termíny (dotaz s předponou, zástupný dotaz, dotaz regex, přibližný dotaz) se přidají přímo do stromu dotazů a obcházejí fázi analýzy. Jediná transformace provedená u částečných termínů dotazů je menší velikost písmen.
Příklad 3: Vyhledávání podle blízkosti
Vyhledávání podle blízkosti najde výrazy, které jsou v dokumentu blízko sebe. Na konec fráze vložte symbol tilda ~ následovaný počtem slov, která vytvoří hranici blízkosti.
Tento dotaz vyhledá termíny hotel a letiště v pěti slovech v dokumentu. Uvozovky jsou escapané (\"), aby se zachovala fráze:
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "Description: \"hotel airport\"~5",
"queryType": "full",
"select": "HotelName, Description",
"searchFields": "HotelName, Description",
"count": true
}
Odpověď pro tento dotaz by měla vypadat podobně jako v následujícím příkladu:
{
"@odata.count": 1,
"value": [
{
"@search.score": 0.69167054,
"HotelName": "Trails End Motel",
"Description": "Only 8 miles from Downtown. On-site bar/restaurant, Free hot breakfast buffet, Free wireless internet, All non-smoking hotel. Only 15 miles from airport."
}
]
}
Příklad 4: Zvýšení termínu
Zvýšení termínu odkazuje na vyšší hodnocení dokumentu, pokud obsahuje zesílený termín vzhledem k dokumentům, které daný termín neobsahují. Pokud chcete výraz zvýšit, použijte stříšku , ^symbol se zvýšovacím faktorem (číslo) na konci hledného termínu. Výchozí faktor zvýšení je 1 a i když musí být pozitivní, může být menší než 1 (například 0,2). Zvýšení významu termínu se liší od profilů hodnocení tím, že zvyšují význam určitých polí, nikoli konkrétních termínů.
V tomto dotazu before vyhledejte beach access a všimněte si, že existuje šest dokumentů, které odpovídají jednomu nebo oběma termínům.
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "beach access",
"queryType": "full",
"select": "HotelName, Description, Tags",
"searchFields": "HotelName, Description, Tags",
"count": true
}
Ve skutečnosti se na access shodují pouze dva dokumenty. První instance je na druhé pozici, i když v dokumentu chybí termín pláž.
{
"@odata.count": 6,
"value": [
{
"@search.score": 1.068669,
"HotelName": "Johnson's Family Resort",
"Description": "Family oriented resort located in the heart of the northland. Operated since 1962 by the Smith family, we have grown into one of the largest family resorts in the state. The home of excellent Smallmouth Bass fishing with 10 small cabins, we're a home not only to fishermen but their families as well. Rebuilt in the early 2000's, all of our cabins have all the comforts of home. Sporting a huge **beach** with multiple water toys for those sunny summer days and a Lodge full of games for when you just can't swim anymore, there's always something for the family to do. A full marina offers watercraft rentals, boat launch, powered dock slips, canoes (free to use), & fish cleaning facility. Rent pontoons, 14' fishing boats, 16' fishing rigs or jet ski's for a fun day or week on the water. Pets are accepted in the lakeside cottages.",
"Tags": [
"24-hour front desk service",
"pool",
"coffee in lobby"
]
},
{
"@search.score": 1.0162708,
"HotelName": "Campus Commander Hotel",
"Description": "Easy **access** to campus and steps away from the best shopping corridor in the city. From meetings in town or gameday, enjoy our prime location between the union and proximity to the university stadium.",
"Tags": [
"free parking",
"coffee in lobby",
"24-hour front desk service"
]
},
{
"@search.score": 0.9050383,
"HotelName": "Lakeside B & B",
"Description": "Nature is Home on the **beach**. Explore the shore by day, and then come home to our shared living space to relax around a stone fireplace, sip something warm, and explore the library by night. Save up to 30 percent. Valid Now through the end of the year. Restrictions and blackouts may apply.",
"Tags": [
"laundry service",
"concierge",
"free parking"
]
},
{
"@search.score": 0.8955848,
"HotelName": "Windy Ocean Motel",
"Description": "Oceanfront hotel overlooking the **beach** features rooms with a private balcony and 2 indoor and outdoor pools. Inspired by the natural beauty of the island, each room includes an original painting of local scenes by the owner. Rooms include a mini fridge, Keurig coffee maker, and flatscreen TV. Various shops and art entertainment are on the boardwalk, just steps away.",
"Tags": [
"pool",
"air conditioning",
"bar"
]
},
{
"@search.score": 0.83636594,
"HotelName": "Happy Lake Resort & Restaurant",
"Description": "The largest year-round resort in the area offering more of everything for your vacation - at the best value! What can you enjoy while at the resort, aside from the mile-long sandy **beaches** of the lake? Check out our activities sure to excite both young and young-at-heart guests. We have it all, including being named "Property of the Year" and a "Top Ten Resort" by top publications.",
"Tags": [
"pool",
"bar",
"restaurant"
]
},
{
"@search.score": 0.7808502,
"HotelName": "Swirling Currents Hotel",
"Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking **access** to shopping, dining, entertainment and the city center. Each room comes equipped with a microwave, a coffee maker and a minifridge. In-room entertainment includes complimentary W-Fi and flat-screen TVs. ",
"Tags": [
"air conditioning",
"laundry service",
"24-hour front desk service"
]
}
]
}
V dotazu after opakujte hledání, tentokrát s upřednostněním výsledků s termínem beach před termínem access. Čitelná verze dotazu je search=Description:beach^2 access. V závislosti na vašem klientovi možná budete muset vyjádřit ^2 jako %5E2.
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "Description:beach^2 access",
"queryType": "full",
"select": "HotelName, Description, Tags",
"searchFields": "HotelName, Description, Tags",
"count": true
}
Po posílení termínu pláže, zápas na Campus Commander Hotel se přesune dolů na páté místo.
{
"@odata.count": 6,
"value": [
{
"@search.score": 2.137338,
"HotelName": "Johnson's Family Resort",
"Description": "Family oriented resort located in the heart of the northland. Operated since 1962 by the Smith family, we have grown into one of the largest family resorts in the state. The home of excellent Smallmouth Bass fishing with 10 small cabins, we're a home not only to fishermen but their families as well. Rebuilt in the early 2000's, all of our cabins have all the comforts of home. Sporting a huge beach with multiple water toys for those sunny summer days and a Lodge full of games for when you just can't swim anymore, there's always something for the family to do. A full marina offers watercraft rentals, boat launch, powered dock slips, canoes (free to use), & fish cleaning facility. Rent pontoons, 14' fishing boats, 16' fishing rigs or jet ski's for a fun day or week on the water. Pets are accepted in the lakeside cottages.",
"Tags": [
"24-hour front desk service",
"pool",
"coffee in lobby"
]
},
{
"@search.score": 1.8100766,
"HotelName": "Lakeside B & B",
"Description": "Nature is Home on the beach. Explore the shore by day, and then come home to our shared living space to relax around a stone fireplace, sip something warm, and explore the library by night. Save up to 30 percent. Valid Now through the end of the year. Restrictions and blackouts may apply.",
"Tags": [
"laundry service",
"concierge",
"free parking"
]
},
{
"@search.score": 1.7911696,
"HotelName": "Windy Ocean Motel",
"Description": "Oceanfront hotel overlooking the beach features rooms with a private balcony and 2 indoor and outdoor pools. Inspired by the natural beauty of the island, each room includes an original painting of local scenes by the owner. Rooms include a mini fridge, Keurig coffee maker, and flatscreen TV. Various shops and art entertainment are on the boardwalk, just steps away.",
"Tags": [
"pool",
"air conditioning",
"bar"
]
},
{
"@search.score": 1.6727319,
"HotelName": "Happy Lake Resort & Restaurant",
"Description": "The largest year-round resort in the area offering more of everything for your vacation - at the best value! What can you enjoy while at the resort, aside from the mile-long sandy beaches of the lake? Check out our activities sure to excite both young and young-at-heart guests. We have it all, including being named "Property of the Year" and a "Top Ten Resort" by top publications.",
"Tags": [
"pool",
"bar",
"restaurant"
]
},
{
"@search.score": 1.0162708,
"HotelName": "Campus Commander Hotel",
"Description": "Easy access to campus and steps away from the best shopping corridor in the city. From meetings in town or gameday, enjoy our prime location between the union and proximity to the university stadium.",
"Tags": [
"free parking",
"coffee in lobby",
"24-hour front desk service"
]
},
{
"@search.score": 0.7808502,
"HotelName": "Swirling Currents Hotel",
"Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center. Each room comes equipped with a microwave, a coffee maker and a minifridge. In-room entertainment includes complimentary W-Fi and flat-screen TVs. ",
"Tags": [
"air conditioning",
"laundry service",
"24-hour front desk service"
]
}
]
}
Příklad 5: Regex
Hledání regulárních výrazů najde shodu na základě obsahu mezi lomítky / a řetězci s malými písmeny, jak je uvedeno ve třídě RegExp.
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "HotelName:/(Mo|Ho)tel/",
"queryType": "full",
"select": "HotelName",
"count": true
}
Odpověď pro tento dotaz by měla vypadat podobně jako v následujícím příkladu (zkráceně kvůli stručnosti):
{
"@odata.count": 25,
"value": [
{
"@search.score": 1,
"HotelName": "Country Residence Hotel"
},
{
"@search.score": 1,
"HotelName": "Downtown Mix Hotel"
},
{
"@search.score": 1,
"HotelName": "Gastronomic Landscape Hotel"
},
. . .
{
"@search.score": 1,
"HotelName": "Trails End Motel"
},
{
"@search.score": 1,
"HotelName": "Nordick's Valley Motel"
},
{
"@search.score": 1,
"HotelName": "King's Cellar Hotel"
}
]
}
Poznámka:
Dotazy s regulárními výrazy se neanalyzují. Jediná transformace provedená u částečných termínů dotazů je menší velikost písmen.
Příklad 6: Vyhledávání pomocí zástupných znaků
Obecně rozpoznanou syntaxi můžete použít pro vyhledávání s více (*) nebo jedním (?) zástupným znakem. Analyzátor dotazů Lucene podporuje použití těchto symbolů s jedním termínem, nikoli frází.
V tomto dotazu vyhledejte názvy hotelů, které obsahují předponu SC. Jako první znak hledání nemůžete použít * ani ? symbol.
POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
"search": "HotelName:sc*",
"queryType": "full",
"select": "HotelName",
"count": true
}
Odpověď pro tento dotaz by měla vypadat podobně jako v následujícím příkladu:
{
"@odata.count": 1,
"value": [
{
"@search.score": 1,
"HotelName": "Waterfront Scottish Inn"
}
]
}
Poznámka:
Dotazy se zástupnými znaky se neanalyzuje. Jediná transformace provedená u částečných termínů dotazů je menší velikost písmen.
Související obsah
- Rychlý průvodce: Fulltextové vyhledávání
- Textové vyhledávání v Azure AI Vyhledávač
- Jednoduchá syntaxe dotazů ve službě Azure AI Vyhledávač
- syntaxe dotazu Lucene v Azure AI Vyhledávač
- Syntaxe filtru OData v Azure AI Vyhledávač