Egyszerű keresési lekérdezések példái az Azure AI Keresésben

Megjegyzés

Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.

Az Azure AI Keresés az egyszerű lekérdezési szintaxis meghívja az alapértelmezett lekérdezéselemzőt a teljes szöveges kereséshez. Az elemző gyors, és kezeli a gyakori forgatókönyveket, beleértve a teljes szöveges keresést, a szűrt és a faceted keresést, valamint az előtagkeresést. Ez a cikk példákkal szemlélteti a keresési dokumentumok (REST API) kéréseinek egyszerű szintaxishasználatát.

Megjegyzés

Egy másik lekérdezési szintaxis a Lucene, amely összetettebb lekérdezési struktúrákat támogat, például a homályos és a helyettesítő karaktereket. További információ: Példák a teljes Lucene-keresés szintaxisára.

Hotelek mintaindexe

A következő lekérdezések a szállodai mintaindexen alapulnak, amelyet a Gyorsútmutató: teljes szöveges keresés az Azure portálon követve hozhat létre.

A példa-lekérdezések a REST API és a POST kérések használatával vannak tagoltan. Beillesztheti és futtathatja őket egy REST-ügyfélben. Vagy használja a Search Explorer JSON nézetét az Azure portalon. JSON nézetben beillesztheti a cikkben bemutatott lekérdezési példákat.

A kérelemfejléceknek a következő értékekkel kell rendelkezniük:

Kulcs Érték
Tartalom típusa alkalmazás/json
API kulcs <your-search-service-api-key>, lekérdezés vagy rendszergazdai kulcs

Az URI-paramétereknek tartalmazniuk kell a search service végpontot az index nevével, a dokumentumgyűjteményekkel, a keresési paranccsal és az API-verzióval, az alábbi példához hasonlóan:

https://{{service-name}}.search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-04-01

A kérelem törzsét érvényes JSON-ként kell formázni:

{
    "search": "*",
    "queryType": "simple",
    "select": "HotelId, HotelName, Category, Tags, Description",
    "count": true
}
  • search értéke * egy meghatározatlan lekérdezés, amely null értékű vagy üres keresésnek felel meg. Ez nem különösen hasznos, de ez a legegyszerűbben elvégezhető keresés, és az index összes beolvasható mezőjét megjeleníti az összes értékkel együtt.

  • queryTypeaz egyszerű beállítás az alapértelmezett érték, amely kihagyható, de azt is ki kell emelni, hogy a cikkben szereplő lekérdezési példák az egyszerű szintaxisban vannak kifejezve.

  • select vesszővel tagolt mezőlistára van állítva a keresési eredmények összetétele, beleértve a keresési eredmények kontextusában hasznos mezőket is.

  • count A keresési feltételeknek megfelelő dokumentumok számát adja vissza. Üres keresési karakterlánc esetén az indexben található összes dokumentum száma jelenik meg (50 a szállodák mintaindexében).

A teljes szöveges keresés tetszőleges számú önálló keresőkifejezésből vagy idézőjelek közé tett kifejezésből állhat, logikai operátorokkal vagy azok nélkül.

POST /indexes/hotel-samples-index/docs/search?api-version=2026-04-01
{
    "search": "pool spa +airport",
    "searchMode": "any",
    "queryType": "simple",
    "select": "HotelId, HotelName, Category, Description",
    "count": true
}

A fontos kifejezésekből vagy kifejezésekből álló kulcsszókeresés általában a legjobban működik. A sztringmezők szövegelemzésen mennek keresztül az indexelés és a lekérdezés során, és elvetik az olyan nem lényeges szavakat, mint a, és, az. Annak megtekintéséhez, hogy egy lekérdezési sztring hogyan van tokenizálva az indexben, adja át a sztringet egy Szövegelemzési hívásban az indexnek.

A searchMode paraméter vezérli a pontosságot és a visszahívást. Ha további visszahívásra van szüksége, használja az alapértelmezett értéket , amely eredményt ad vissza, ha a lekérdezési sztring bármely része megfeleltetve van. Ha a pontosságot részesíti előnyben, ahol a sztring minden részének egyeznie kell, változtassa meg a searchMode-t all értékre. Próbálja meg az előző lekérdezést mindkét módon, hogy lássa, hogyan módosítja a searchMode az eredményt.

A pool spa +airport lekérdezés válaszának az alábbi példához hasonlóan kell kinéznie.

"@odata.count": 4,
"value": [
{
    "@search.score": 6.090657,
    "HotelId": "12",
    "HotelName": "Winter Panorama Resort",
    "Description": "Plenty of great skiing, outdoor ice skating, sleigh rides, tubing and snow biking. Yoga, group exercise classes and outdoor hockey are available year-round, plus numerous options for shopping as well as great spa services. Newly-renovated with large rooms, free 24-hr airport shuttle & a new restaurant. Rooms/suites offer mini-fridges & 49-inch HDTVs.",
    "Category": "Resort and Spa"
},
{
    "@search.score": 4.314683,
    "HotelId": "21",
    "HotelName": "Good Business Hotel",
    "Description": "1 Mile from the airport. Free WiFi, Outdoor Pool, Complimentary Airport Shuttle, 6 miles from Lake Lanier & 10 miles from downtown. Our business center includes printers, a copy machine, fax, and a work area.",
    "Category": "Suite"
},
{
    "@search.score": 3.575948,
    "HotelId": "27",
    "HotelName": "Starlight Suites",
    "Description": "Complimentary Airport Shuttle & WiFi. Book Now and save - Spacious All Suite Hotel, Indoor Outdoor Pool, Fitness Center, Florida Green certified, Complimentary Coffee, HDTV",
    "Category": "Suite"
},
{
    "@search.score": 2.6926985,
    "HotelId": "25",
    "HotelName": "Waterfront Scottish Inn",
    "Description": "Newly Redesigned Rooms & airport shuttle. Minutes from the airport, enjoy lakeside amenities, a resort-style pool & stylish new guestrooms with Internet TVs.",
    "Category": "Suite"
}
]

Figyelje meg a keresési pontszámot a válaszban. Ez a találat relevanciapontszáma. Alapértelmezés szerint egy search service a pontszám alapján adja vissza az első 50 találatot.

Az egységes 1,0 pontszámok akkor fordulnak elő, ha nincs rangsorolás, akár mert a keresés nem teljes szövegű keresés volt, akár mert nem adtak meg feltételeket. Például egy üres keresésben (search=*) a sorok tetszőleges sorrendben térnek vissza. Ha tényleges feltételeket ad meg, a keresési pontszámok értelmes értékekké alakulnak.

2. példa: Keresés azonosító alapján

A keresési eredmények visszaadása után logikus következő lépésként meg kell adnia egy részletes lapot, amely a dokumentum további mezőit tartalmazza. Ez a példa bemutatja, hogyan adhat vissza egyetlen dokumentumot a Dokumentum lekérése funkcióval a dokumentumazonosító megadásával.

GET /indexes/hotels-sample/docs/41?api-version=2026-04-01

Minden dokumentum egyedi azonosítóval rendelkezik. Ha a Azure portal használja, jelölje ki az indexet a Indexes lapon, majd tekintse meg a meződefiníciókat annak meghatározásához, hogy melyik mező a kulcs. A REST API-ban a GET Index hívás a válasz törzsében lévő indexdefiníciót adja vissza.

Az előző lekérdezés válasza az a dokumentum, amelynek kulcsa 41. Az indexdefinícióban lekérdezhetőként megjelölt mezők visszaadhatók a keresési eredményekben, és megjeleníthetők az alkalmazásban.

{
    "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.",
    "Description_fr": "Cet hôtel en bord de mer donnant sur la plage propose des chambres dotées d'un balcon privé et de 2 piscines intérieure et extérieure. Inspiré par la beauté naturelle de l'île, chaque chambre comprend une peinture originale de scènes locales par le propriétaire. Les chambres comprennent un mini-réfrigérateur, une cafetière Keurig et une télévision à écran plat. Divers magasins et divertissements artistiques se trouvent sur la promenade, à quelques pas.",
    "Category": "Suite",
    "Tags": [
    "pool",
    "air conditioning",
    "bar"
    ],
    "ParkingIncluded": true,
    "LastRenovationDate": "2021-05-10T00:00:00Z",
    "Rating": 3.5,
    "Location": {
    "type": "Point",
    "coordinates": [
        -157.846817,
        21.295841
    ],
    "crs": {
        "type": "name",
        "properties": {
        "name": "EPSG:4326"
        }
    }
    },
    "Address": {
    "StreetAddress": "1450 Ala Moana Blvd 2238 Ala Moana Ctr",
    "City": "Honolulu",
    "StateProvince": "HI",
    "PostalCode": "96814",
    "Country": "USA"
    }
}

3. példa: Szűrés szövegre

A szűrőszintaxis egy olyan OData-kifejezés, amelyet önmagában vagy a searchhasználatával is használhat. Ha ugyanabban a kérelemben használják együtt, először filter kerül alkalmazásra a teljes indexre, majd a search a szűrő eredményein kerül végrehajtásra. A szűrők éppen ezért hasznosak a lekérdezés teljesítményének javítására, mivel általuk lecsökkenthető a keresési lekérdezés által feldolgozandó dokumentumok köre.

A szűrők az indexdefinícióban megjelölt filterable bármely mezőn definiálhatók. A szállodai mintaindex szűrhető mezői közé tartozik a Kategória, a Címkék, a Parkolási cím, az Értékelés és a legtöbb Cím mező.

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "art tours",
    "queryType": "simple",
    "filter": "Category eq 'Boutique'",
    "searchFields": "HotelName,Description,Category",
    "select": "HotelId,HotelName,Description,Category",
    "count": true
}

Az előző lekérdezésre adott válasz csak a Butik kategóriába sorolt szállodákra terjed ki, amelyek tartalmazzák a művészeti vagy túrakifejezéseket. Ebben az esetben csak egy egyezés van.

"value": [
{
    "@search.score": 1.2814453,
    "HotelId": "2",
    "HotelName": "Old Century Hotel",
    "Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts. The hotel also regularly hosts events like wine tastings, beer dinners, and live music.",
    "Category": "Boutique"
}
]

4. példa: Szűrőfüggvények

A szűrőkifejezések tartalmazhatnak search.ismatch és search.ismatchscoring függvényeket, így létrehozhat egy keresési lekérdezést a szűrőn belül. Ez a szűrőkifejezés helyettesítő karaktert használ a(z) ingyenes szóra a kényelmi funkciók kiválasztásához, beleértve az ingyenes wifit, az ingyenes parkolást és így tovább.

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
  {
    "search": "",
    "filter": "search.ismatch('free*', 'Tags', 'full', 'any')",
    "select": "HotelName, Tags, Description",
    "count": true
  }

Az előző lekérdezésre adott válasz 27 szállodával egyezik meg, amelyek ingyenes szolgáltatásokat kínálnak. A keresési pontszám egységes 1 a találatok között. Ennek az az oka, hogy a keresési kifejezés null értékű vagy üres, ami szó szerinti szűrési egyezéseket eredményez, de nem tartalmaz teljes szöveges keresést. A relevanciaértékek csak teljes szöveges kereséssel jelennek meg. Ha szűrőket használ nélküle search, győződjön meg arról, hogy elegendő rendezhető mezővel rendelkezik, hogy szabályozhassa a keresési rangsort.

  "@odata.count": 27,
  "value": [
    {
      "@search.score": 1,
      "HotelName": "Country Residence Hotel",
      "Description": "All of the suites feature full-sized kitchens stocked with cookware, separate living and sleeping areas and sofa beds. Some of the larger rooms have fireplaces and patios or balconies. Experience real country hospitality in the heart of bustling Nashville. The most vibrant music scene in the world is just outside your front door.",
      "Tags": [
        "laundry service",
        "restaurant",
        "free parking"
      ]
    },
    {
      "@search.score": 1,
      "HotelName": "Downtown Mix Hotel",
      "Description": "Mix and mingle in the heart of the city. Shop and dine, mix and mingle in the heart of downtown, where fab lake views unite with a cheeky design.",
      "Tags": [
        "air conditioning",
        "laundry service",
        "free wifi"
      ]
    },
    {
      "@search.score": 1,
      "HotelName": "Starlight Suites",
      "Description": "Complimentary Airport Shuttle & WiFi. Book Now and save - Spacious All Suite Hotel, Indoor Outdoor Pool, Fitness Center, Florida Green certified, Complimentary Coffee, HDTV",
      "Tags": [
        "pool",
        "coffee in lobby",
        "free wifi"
      ]
    },
. . .

5. példa: Tartományszűrők

A tartományszűrés bármilyen adattípus szűrőkifejezéseivel támogatott. Az alábbi példák numerikus és sztringtartományokat szemléltetnek. Az adattípusok fontosak a tartományszűrőkben, és akkor működnek a legjobban, ha numerikus adatok numerikus mezőkben, sztringadatok pedig sztringmezőkben találhatók. A sztringmezők numerikus adatai nem alkalmasak tartományokra, mert a numerikus sztringek nem összehasonlíthatók.

Az alábbi lekérdezés egy numerikus tartomány. A hotels-sample indexben az egyetlen szűrhető numerikus mező a Rating.

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "*",
    "filter": "Rating ge 2 and Rating lt 4",
    "select": "HotelId, HotelName, Rating",
    "orderby": "Rating desc",
    "count": true
}

A lekérdezésre adott válasznak a következő példához hasonlóan kell kinéznie, a rövidítés kedvéért levágva.

"@odata.count": 27,
"value": [
{
    "@search.score": 1,
    "HotelId": "22",
    "HotelName": "Lion's Den Inn",
    "Rating": 3.9
},
{
    "@search.score": 1,
    "HotelId": "25",
    "HotelName": "Waterfront Scottish Inn",
    "Rating": 3.8
},
{
    "@search.score": 1,
    "HotelId": "2",
    "HotelName": "Old Century Hotel",
    "Rating": 3.6
},
...

A következő lekérdezés egy tartományszűrő egy karakterlánc mezőn (Cím/ÁllamTartomány):

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "*",
    "filter": "Address/StateProvince ge 'A*' and Address/StateProvince lt 'D*'",
    "select": "HotelId, HotelName, Address/StateProvince",
    "count": true
}

A lekérdezésre adott válasznak a következő példához hasonlóan kell kinéznie, a rövidítés kedvéért levágva. Ebben a példában nem lehet StateProvince szerint rendezni, mert a mező nincs megadva rendezhetőként az indexdefinícióban.

{
  "@odata.count": 9,
  "value": [
    {
      "@search.score": 1,
      "HotelId": "39",
      "HotelName": "White Mountain Lodge & Suites",
      "Address": {
        "StateProvince": "CO"
      }
    },
    {
      "@search.score": 1,
      "HotelId": "9",
      "HotelName": "Smile Up Hotel",
      "Address": {
        "StateProvince": "CA "
      }
    },
    {
      "@search.score": 1,
      "HotelId": "7",
      "HotelName": "Roach Motel",
      "Address": {
        "StateProvince": "CA "
      }
    },
    {
      "@search.score": 1,
      "HotelId": "34",
      "HotelName": "Lakefront Captain Inn",
      "Address": {
        "StateProvince": "CT"
      }
    },
    {
      "@search.score": 1,
      "HotelId": "37",
      "HotelName": "Campus Commander Hotel",
      "Address": {
        "StateProvince": "CA "
      }
    },
. . .

A szállodai mintaindex tartalmaz egy földrajzi szélességi és hosszúsági koordinátákat tartalmazó Hely mezőt. Ez a példa a geo.distance függvényt használja, amely a kiindulási pont kerületén belül szűri a dokumentumokat, egy tetszőleges távolságra (kilométerben), amelyet ön ad meg. A lekérdezés utolsó értékét (10) módosíthatja a lekérdezés surface területének csökkentése vagy nagyítása érdekében.

POST /indexes/v/docs/search?api-version=2026-04-01
{
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-122.335114 47.612839)') le 10",
    "select": "HotelId, HotelName, Address/City, Address/StateProvince",
    "count": true
}

A lekérdezésre adott válasz a megadott koordinátáktól 10 km-re lévő összes szállodát visszaadja:

{
  "@odata.count": 3,
  "value": [
    {
      "@search.score": 1,
      "HotelId": "45",
      "HotelName": "Happy Lake Resort & Restaurant",
      "Address": {
        "City": "Seattle",
        "StateProvince": "WA"
      }
    },
    {
      "@search.score": 1,
      "HotelId": "24",
      "HotelName": "Uptown Chic Hotel",
      "Address": {
        "City": "Seattle",
        "StateProvince": "WA"
      }
    },
    {
      "@search.score": 1,
      "HotelId": "16",
      "HotelName": "Double Sanctuary Resort",
      "Address": {
        "City": "Seattle",
        "StateProvince": "WA"
      }
    }
  ]
}

7. példa: Logikai értékek a searchMode használatával

Az egyszerű szintaxis karakterek (+, -, |) formájában támogatja a logikai operátorokat az AND, OR és NOT lekérdezési logika támogatásához. A logikai keresés a várt módon viselkedik, néhány figyelemre méltó kivétellel.

Logikai keresés esetén fontolja meg a searchMode paraméter hozzáadását a pontosság és a visszakeresés befolyásolására szolgáló mechanizmusként. Az érvényes értékek közé tartozik a "searchMode": "any" visszahívás előnyben részesítése (a feltételek bármelyikének megfelelő dokumentum egyezésnek minősül), valamint "searchMode": "all" a pontosság előnyben részesítése (minden feltételnek meg kell egyeznie egy dokumentumban).

A logikai keresés kontextusában az alapértelmezett beállítás "searchMode": "any" zavaró lehet, ha egy lekérdezést több operátorral halmoz fel, és a szűkebb eredmények helyett szélesebb lesz. Ez különösen igaz a NOT esetében, ahol az eredmények tartalmazzák az összes olyan dokumentumot , amely nem tartalmaz egy adott kifejezést vagy kifejezést.

Az alábbi példa egy illusztrációt tartalmaz. A lekérdezés olyan egyezéseket keres az étteremben, amelyek kizárják a légkondicionáló kifejezést. Ha a következő lekérdezést a searchMode (bármelyik) használatával futtatja, a rendszer 43 dokumentumot ad vissza: az étterem kifejezést tartalmazó dokumentumokat, valamint az összes olyan dokumentumot, amely nem tartalmazza a *légkondicionáló kifejezést.

Nincs térköz a logikai operátor (-) és a légkondicionáló kifejezés között. Az idézőjelek le vannak escape-elve (\").

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "restaurant -\"air conditioning\"",
    "searchMode": "any",
    "searchFields": "Tags",
    "select": "HotelId, HotelName, Tags",
    "count": true
}

"searchMode": "all" A módosítás kumulatív hatást gyakorol a feltételekre, és egy kisebb eredményhalmazt (hét találatot) ad vissza, amely az étterem kifejezést tartalmazó dokumentumokból áll, a légkondicionáló kifejezést tartalmazók nélkül.

A lekérdezésre adott válasz most az alábbi példához hasonlóan fog kinézni, a rövidítés kedvéért levágva.

{
  "@odata.count": 14,
  "value": [
    {
      "@search.score": 3.1383743,
      "HotelId": "18",
      "HotelName": "Ocean Water Resort & Spa",
      "Tags": [
        "view",
        "pool",
        "restaurant"
      ]
    },
    {
      "@search.score": 2.028083,
      "HotelId": "22",
      "HotelName": "Lion's Den Inn",
      "Tags": [
        "laundry service",
        "free wifi",
        "restaurant"
      ]
    },
    {
      "@search.score": 2.028083,
      "HotelId": "34",
      "HotelName": "Lakefront Captain Inn",
      "Tags": [
        "restaurant",
        "laundry service",
        "coffee in lobby"
      ]
    },
...

8. példa: Lapozási eredmények

A korábbi példákban megismerhette a keresési eredmények összetételét befolyásoló paramétereket, többek között select azt, hogy mely mezők szerepelnek az eredményben, hogyan rendezheti a sorrendeket, és hogyan lehet belefoglalni az összes találat számát. A példa a keresési eredmények lapozási paramétereinek alkalmazását mutatja be, amelyek lehetővé teszik, hogy az egyes oldalon megjelenő találatok számát szabályozzuk.

Alapértelmezés szerint egy search service az első 50 találatot adja vissza. Az egyes oldalak egyezéseinek számának szabályozásához használja a top-t a köteg méretének meghatározására, majd használja a skip-t a következő kötegek kiválasztására.

Az alábbi példa egy szűrési és rendezési sorrendet használ a Rating mezőben (az értékelés szűrhető és rendezhető is), mert könnyebb látni a lapozásnak a rendezett eredményekre gyakorolt hatását. Egy normál teljes keresési lekérdezésben a rendszer a legfontosabb találatokat rangsorolja és lapozza @search.score.

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "*",
    "filter": "Rating gt 4",
    "select": "HotelName, Rating",
    "orderby": "Rating desc",
    "top": 5,
    "count": true
}

A lekérdezés 21 egyező dokumentumot talál, de mivel megadta a , a válasz csak az első öt találatot adja vissza, a minősítések 4,9-nél kezdődnek, és 4,7-nél végződnek a Lakeside B & B-vel.

A következő öt elem megszerzéséhez hagyja ki az első sorozatot.

POST /indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "*",
    "filter": "Rating gt 4",
    "select": "HotelName, Rating",
    "orderby": "Rating desc",
    "top": 5,
    "skip": 5,
    "count": true
}

A második tétel válasza kihagyja az első öt találatot, és a következő öt találatot adja vissza, kezdve a Pull'r Inn Motelnél. A további lekérésekhez tartsa a top paramétert ötön, majd minden új kérésnél növelje meg skip értékét öttel (skip=5, skip=10, skip=15 stb.).

{
  "@odata.count": 21,
  "value": [
    {
      "@search.score": 1,
      "HotelName": "Head Wind Resort",
      "Rating": 4.7
    },
    {
      "@search.score": 1,
      "HotelName": "Sublime Palace Hotel",
      "Rating": 4.6
    },
    {
      "@search.score": 1,
      "HotelName": "City Skyline Antiquity Hotel",
      "Rating": 4.5
    },
    {
      "@search.score": 1,
      "HotelName": "Nordick's Valley Motel",
      "Rating": 4.5
    },
    {
      "@search.score": 1,
      "HotelName": "Winter Panorama Resort",
      "Rating": 4.5
    }
  ]
}