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.
Funkce fulltextového vyhledávání OData ve službě Azure AI Vyhledávač –
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.
Azure AI Vyhledávač podporuje fulltextové vyhledávání v kontextu výrazů filtru OData pomocí funkcí search.ismatch a search.ismatchscoring. Tyto funkce umožňují kombinovat fulltextové vyhledávání s přísným logickým filtrováním způsoby, které nejsou možné jenom pomocí parametru nejvyšší úrovně searchrozhraní API služby Search.
Poznámka:
Funkce search.ismatch a search.ismatchscoring jsou podporovány pouze ve filtrech v Search API. Nejsou podporované v rozhraních API pro návrhy ani automatické dokončování .
Syntaxe
Následující zápis EBNF (Extended Backus-Naur Form) definuje gramatiku funkcí search.ismatch a search.ismatchscoring.
search_is_match_call ::=
'search.ismatch'('scoring')?'(' search_is_match_parameters ')'
search_is_match_parameters ::=
string_literal(',' string_literal(',' query_type ',' search_mode)?)?
query_type ::= "'full'" | "'simple'"
search_mode ::= "'any'" | "'all'"
K dispozici je také interaktivní diagram syntaxe:
Poznámka:
Úplný soubor EBNF najdete v referenčních informacích k syntaxi výrazů OData pro Azure AI Vyhledávač .
search.ismatch
Funkce search.ismatch vyhodnotí fulltextový vyhledávací dotaz jako součást výrazu filtru. V sadě výsledků se vrátí odpovídající dokumenty. K dispozici jsou následující přetížení této funkce:
search.ismatch(search)search.ismatch(search, searchFields)search.ismatch(search, searchFields, queryType, searchMode)
Parametry jsou definovány v následující tabulce:
| Název parametru | Typ | Popis |
|---|---|---|
search |
Edm.String |
Vyhledávací dotaz (v jednoduché nebo úplné syntaxi dotazu Lucene). |
searchFields |
Edm.String |
Čárkami oddělený seznam prohledávatelných polí pro hledání; ve výchozím nastavení se nastaví na všechna prohledávatelná pole v indexu. Když v parametru použijete search, určovače polí v dotazu Lucene přepíší jakákoli pole zadaná v tomto parametru. |
queryType |
Edm.String |
'simple' nebo 'full'; výchozí hodnota 'simple'je . Určuje, jaký dotazovací jazyk byl použit v parametru search . |
searchMode |
Edm.String |
'any' nebo 'all', výchozí hodnota 'any'je . Určuje, jestli se musí některé nebo všechny hledané termíny v parametru search shodovat, aby bylo možné spočítat dokument jako shodu. Když použijete Lucene Boolean operátory v parametru search, mají přednost před tímto parametrem. |
Všechny výše uvedené parametry jsou ekvivalentní odpovídajícím parametrům požadavku vyhledávání v rozhraní API služby Search.
Funkce search.ismatch vrátí hodnotu typu Edm.Boolean, která umožňuje kombinovat ji s jinými dílčími výrazy filtru pomocí booleovských logických operátorů .
Poznámka:
Azure AI Vyhledávač nepodporuje použití search.ismatch nebo search.ismatchscoring uvnitř výrazů lambda. To znamená, že není možné zapisovat filtry pro kolekce objektů, které mohou korelovat výsledky fulltextového vyhledávání se striktními shodami filtrů na stejném objektu. Další informace o tomto omezení a příklady najdete v tématu Řešení potíží s filtry kolekcí ve službě Azure AI Vyhledávač. Podrobnější informace o tom, proč toto omezení existuje, najdete v tématu Vysvětlení filtrů kolekcí ve službě Azure AI Vyhledávač.
search.ismatchscoring
Funkce search.ismatchscoring , podobně jako funkce search.ismatch , vrátí true dokumenty, které odpovídají fulltextového vyhledávacímu dotazu předaného jako parametr. Rozdíl mezi nimi spočívá v tom, že skóre relevance dokumentů odpovídajících search.ismatchscoring dotazu přispívá k celkovému skóre dokumentu, zatímco skóre search.ismatchdokumentu se nezmění. Následující přetížení této funkce jsou k dispozici s parametry identickými s parametry search.ismatch:
search.ismatchscoring(search)search.ismatchscoring(search, searchFields)search.ismatchscoring(search, searchFields, queryType, searchMode)
Funkce search.ismatch i search.ismatchscoring lze použít ve stejném výrazu filtru.
Příklady
Najděte dokumenty se slovem „nábřeží“. Tento filtrovací dotaz je shodný s vyhledávacím dotazem s search=waterfront.
search.ismatchscoring('waterfront')
Tady je úplná syntaxe dotazů pro tento požadavek, kterou můžete spustit v Průzkumníku služby Search na webu Azure Portal. Výstup se skládá ze shod na břehu, vodě a přední části.
{
"search": "*",
"select": "HotelId, HotelName, Description",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatchscoring('waterfront')"
}
Najděte dokumenty se slovem "bazén" a hodnocením větším nebo rovným 4, nebo dokumenty se slovem "motel" s hodnocením rovným 3,2. Všimněte si, že tento požadavek nelze vyjádřit bez search.ismatchscoring funkce.
search.ismatchscoring('pool') and Rating ge 4 or search.ismatchscoring('motel') and Rating eq 3.2
Tady je úplná syntaxe dotazu pro tento požadavek v nástroji Search Explorer. Výstup se skládá ze shod v hotelech s bazénem, které mají hodnocení větší než 4, nebo motelů s hodnocením rovnajícím se 3,2.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatchscoring('pool') and Rating ge 4 or search.ismatchscoring('motel') and Rating eq 3.2"
}
Najděte dokumenty bez slova "luxury".
not search.ismatch('luxury')
Tady je úplná syntaxe dotazu pro tento požadavek. Výstup se skládá ze shod ve výrazu luxury.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "not search.ismatch('luxury')"
}
Najděte dokumenty s výrazem "oceán" nebo hodnocením rovnajícím se hodnotě 3,2. Dotaz search.ismatchscoring se provede pouze pro pole HotelName a Description.
Tady je úplná syntaxe dotazu pro tento požadavek. Dokumenty, které odpovídají pouze druhé klauzuli disjunkce, jsou také vráceny (konkrétně hotely, kde se Rating rovná 3.2). Aby bylo jasné, že tyto dokumenty neodpovídaly žádné z hodnocených částí výrazu, vrátí se se skóre, které je rovno nule.
{
"search": "*",
"select": "HotelId, HotelName, Description, Rating",
"searchMode": "all",
"queryType": "full",
"count": true,
"filter": "search.ismatchscoring('ocean', 'Description,HotelName') or Rating eq 3.2"
}
Výstup se skládá ze 4 shod: hotely, které zmiňují "ocean" v popisu nebo názvu hotelu, nebo hotely s hodnocením 3.2. Všimněte si vyhledávacího skóre nula pro shody ve druhé větě.
{
"@odata.count": 4,
"value": [
{
"@search.score": 1.6076145,
"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.",
"Rating": 4.2
},
{
"@search.score": 1.0594962,
"HotelId": "41",
"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.",
"Rating": 3.5
},
{
"@search.score": 0,
"HotelId": "40",
"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.",
"Rating": 3.2
},
{
"@search.score": 0,
"HotelId": "26",
"HotelName": "Planetary Plaza & Suites",
"Description": "Extend Your Stay. Affordable home away from home, with amenities like free Wi-Fi, full kitchen, and convenient laundry service.",
"Rating": 3.2
}
]
}
V popisu hotelu najděte dokumenty, kde termíny "hotel" a "airport" jsou mezi sebou ve vzdálenosti 5 slov a kde se nesmí kouřit alespoň v některých pokojích.
search.ismatch('"hotel airport"~5', 'Description', 'full', 'any') and Rooms/any(room: not room/SmokingAllowed)
Tady je úplná syntaxe dotazu. Chcete-li spustit v Průzkumníku hledání, vložte do uvozovek znak zpětného lomítka.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatch('\"hotel airport\"~5', 'Description', 'full', 'any') and Rooms/any(room: not room/SmokingAllowed)"
}
Výstup se skládá z jednoho dokumentu, kde termíny "hotel" a "airport" jsou ve vzdálenosti 5 slov. Kouření je povoleno pro několik pokojů ve většině hotelů, včetně těch, které jsou v tomto výsledku hledání.
{
"@odata.count": 1,
"value": [
{
"@search.score": 1,
"HotelId": "40",
"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.",
"Tags": [
"bar",
"free wifi",
"restaurant"
],
"Rating": 3.2
}
]
}
Vyhledejte dokumenty, které mají slovo začínající písmeny "lux" v poli Popis. Tento dotaz používá vyhledávání předpon v kombinaci s search.ismatch.
search.ismatch('lux*', 'Description')
Tady je úplný dotaz:
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatch('lux*', 'Description')"
}
Výstup se skládá z následujících shod.
{
"@odata.count": 4,
"value": [
{
"@search.score": 1,
"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.",
"Tags": [
"view",
"pool",
"restaurant"
],
"Rating": 4.2
},
{
"@search.score": 1,
"HotelId": "13",
"HotelName": "Luxury Lion Resort",
"Description": "Unmatched Luxury. Visit our downtown hotel to indulge in luxury accommodations. Moments from the stadium and transportation hubs, we feature the best in convenience and comfort.",
"Tags": [
"bar",
"concierge",
"restaurant"
],
"Rating": 4.1
},
{
"@search.score": 1,
"HotelId": "16",
"HotelName": "Double Sanctuary Resort",
"Description": "5 star Luxury Hotel - Biggest Rooms in the city. #1 Hotel in the area listed by Traveler magazine. Free WiFi, Flexible check in/out, Fitness Center & espresso in room.",
"Tags": [
"view",
"pool",
"restaurant",
"bar",
"continental breakfast"
],
"Rating": 4.2
},
{
"@search.score": 1,
"HotelId": "14",
"HotelName": "Twin Vortex Hotel",
"Description": "New experience in the making. Be the first to experience the luxury of the Twin Vortex. Reserve one of our newly-renovated guest rooms today.",
"Tags": [
"bar",
"restaurant",
"concierge"
],
"Rating": 4.4
}
]
}