Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
OData teljes szöveges keresési függvények az Azure AI Searchben –
Az Azure AI Search támogatja a teljes szöveges keresést az OData-szűrőkifejezések kontextusában search.ismatchscoring
keresztül. Ezek a függvények lehetővé teszik a teljes szöveges keresés és a szigorú logikai szűrés kombinálását olyan módon, amely nem lehetséges csak a Search API legfelső szintű search
paraméterének használatával.
Feljegyzés
A search.ismatch
függvények és search.ismatchscoring
a függvények csak a Keresési API szűrőiben támogatottak. A Javaslat vagy az Automatikus kiegészítés API-k nem támogatják őket.
Szemantika
A következő EBNF (Extended Backus-Naur form) határozza meg a nyelvhelyesség és search.ismatch
a search.ismatchscoring
függvények:
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'"
Interaktív szintaxisdiagram is elérhető:
Feljegyzés
A teljes EBNF-hez tekintse meg az Azure AI Search OData-kifejezésszintaxis-hivatkozását.
search.ismatch
A search.ismatch
függvény egy teljes szöveges keresési lekérdezést értékel ki egy szűrőkifejezés részeként. Az eredményhalmaz egyező dokumentumokat ad vissza. A függvény alábbi túlterhelései érhetők el:
search.ismatch(search)
search.ismatch(search, searchFields)
search.ismatch(search, searchFields, queryType, searchMode)
A paraméterek a következő táblázatban vannak definiálva:
Paraméter neve | Típus | Leírás |
---|---|---|
search |
Edm.String |
A keresési lekérdezés (egyszerű vagy teljes Lucene lekérdezési szintaxissal). |
searchFields |
Edm.String |
A kereshető mezők vesszővel tagolt listája; alapértelmezés szerint az index összes kereshető mezőjére. Ha mezős keresést használ a search paraméterben, a Lucene lekérdezés mezőjelölői felülbírálják a paraméterben megadott mezőket. |
queryType |
Edm.String |
'simple' vagy 'full' ; alapértelmezett értéke: 'simple' . Megadja, hogy milyen lekérdezési nyelvet használt a search paraméter. |
searchMode |
Edm.String |
'any' vagy 'all' az alapértelmezett érték.'any' Azt jelzi, hogy a paraméterben szereplő search keresési kifejezéseket egyezni kell-e a dokumentum egyezésként való megszámlálásához. Amikor a Lucene logikai operátorokat használja a search paraméterben, azok elsőbbséget élveznek ezzel a paraméternel szemben. |
A fenti paraméterek megegyeznek a Keresési API megfelelő keresési kérési paramétereinek.
A search.ismatch
függvény egy típusértéket Edm.Boolean
ad vissza, amely lehetővé teszi, hogy más szűrési részexpressziókkal írja meg a logikai operátorok használatával.
Feljegyzés
Az Azure AI Search nem támogatja a lambdakifejezések használatát search.ismatch
vagy search.ismatchscoring
azon belüli használatát. Ez azt jelenti, hogy nem lehet szűrőket írni olyan objektumgyűjtemények fölé, amelyek korrelálhatják a teljes szöveges keresési egyezéseket, és szigorú szűrési egyezéseket használnak ugyanazon az objektumon. A korlátozással kapcsolatos további információkért és példákért tekintse meg az Azure AI Search gyűjteményszűrőinek hibaelhárítását. A korlátozás okaival kapcsolatos részletesebb információkért tekintse meg az Azure AI Search gyűjteményszűrőinek ismertetését.
search.ismatchscoring
A search.ismatchscoring
függvény a search.ismatch
függvényhez hasonlóan olyan dokumentumokhoz ad vissza true
, amelyek megfelelnek a paraméterként átadott teljes szöveges keresési lekérdezésnek. A különbség köztük az, hogy a lekérdezésnek megfelelő search.ismatchscoring
dokumentumok relevanciapontszáma hozzájárul a teljes dokumentumpontszámhoz, míg search.ismatch
a dokumentum pontszáma nem változik. A függvény alábbi túlterhelései a következő paraméterekkel search.ismatch
érhetők el:
search.ismatchscoring(search)
search.ismatchscoring(search, searchFields)
search.ismatchscoring(search, searchFields, queryType, searchMode)
A függvények és search.ismatch
a search.ismatchscoring
függvények is használhatók ugyanabban a szűrőkifejezésben.
Példák
Keresse meg a "waterfront" szót tartalmazó dokumentumokat. Ez a szűrő lekérdezés megegyezik a keresési kéréssel a következővel search=waterfront
: .
search.ismatchscoring('waterfront')
Itt találja a kérés teljes lekérdezési szintaxisát, amelyet a Search Explorerben futtathat az Azure Portalon. A kimenet vízparton, vízen és fronton lévő egyezésekből áll.
{
"search": "*",
"select": "HotelId, HotelName, Description",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatchscoring('waterfront')"
}
Keresse meg a "készlet" szót tartalmazó és a 4-es vagy annál nagyobb minősítésű dokumentumokat, illetve a "motel" szóval és a 3,2-es értékkel egyenlő dokumentumokat. Vegye figyelembe, hogy ez a kérés nem fejezhető ki a search.ismatchscoring
függvény nélkül.
search.ismatchscoring('pool') and Rating ge 4 or search.ismatchscoring('motel') and Rating eq 3.2
A Kereséskezelő kérésének teljes lekérdezésszintaxisa az alábbi. A kimenet a 4-nél nagyobb minősítésű szállodák, illetve a 3,2-es minősítésű motelek találataiból áll.
{
"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"
}
Keresse meg a "luxus" szó nélküli dokumentumokat.
not search.ismatch('luxury')
Íme a kérés teljes lekérdezési szintaxisa. A kimenet a luxus kifejezéshez tartozó egyezésekből áll.
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "not search.ismatch('luxury')"
}
Keresse meg az "ocean" vagy a 3,2 értékkel egyenlő minősítésű dokumentumokat. A search.ismatchscoring
lekérdezés csak mezőkön HotelName
és Description
.
Íme a kérés teljes lekérdezési szintaxisa. A csak a tiltás második záradékának megfelelő dokumentumokat is visszaadja a rendszer (pontosabban az egyenlő 3.2
értékű szállodákatRating
). Annak érdekében, hogy egyértelmű legyen, hogy ezek a dokumentumok nem egyeznek a kifejezés egyik pontozott részével sem, nullával egyenlő pontszámmal lesznek visszaadva.
{
"search": "*",
"select": "HotelId, HotelName, Description, Rating",
"searchMode": "all",
"queryType": "full",
"count": true,
"filter": "search.ismatchscoring('ocean', 'Description,HotelName') or Rating eq 3.2"
}
A kimenet 4 találatból áll: a leírásban vagy a szállodanévben az "óceán" szót említő szállodák, vagy a 3,2-s minősítéssel rendelkező szállodák. Figyelje meg a második záradékban szereplő találatok nulla keresési pontszámá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
}
]
}
Keresse meg a dokumentumokat, ahol a "szálloda" és a "repülőtér" kifejezés 5 szóra van egymástól a szálloda leírásában, és ahol a dohányzás nem engedélyezett legalább néhány szobában.
search.ismatch('"hotel airport"~5', 'Description', 'full', 'any') and Rooms/any(room: not room/SmokingAllowed)
Íme a teljes lekérdezési szintaxis. A Keresőböngészőben való futtatáshoz meneküljön el a belső idézőjelek elől fordított perjel karakterrel.
{
"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)"
}
A kimenet egyetlen dokumentumból áll, ahol a "hotel" és a "repülőtér" kifejezés 5 szó távolságon belül van. A dohányzás a legtöbb szállodában több szobára engedélyezett, beleértve a keresési eredményben szereplőt is.
{
"@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
}
]
}
Keresse meg a Leírás mezőben a "lux" betűvel kezdődő szavakat tartalmazó dokumentumokat. Ez a lekérdezés az előtagkeresést és search.ismatch
a .
search.ismatch('lux*', 'Description')
Íme egy teljes lekérdezés:
{
"search": "*",
"select": "HotelId, HotelName, Description, Tags, Rating",
"searchMode": "all",
"queryType": "simple",
"count": true,
"filter": "search.ismatch('lux*', 'Description')"
}
A kimenet a következő egyezésekből áll.
{
"@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
}
]
}