Index létrehozása több nyelvhez 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.

Ha több nyelven is rendelkezik sztringekkel, a vektoros kereséssel matematikailag ábrázolhatja a többnyelvű tartalmakat, ami a modernebb megközelítés. Ha nem vektorokat használ, csatolhat olyan nyelvelemzőket , amelyek egy adott nyelv nyelvi szabályaival elemzik a sztringeket az indexelés és a lekérdezés végrehajtása során. A nyelvelemzővel jobban kezelhetők a diakritikák, a karaktervariánsok, az írásjelek és a szógyök alakok.

Az Azure AI Keresés támogatja a Microsoft és a Lucene elemzőit. Alapértelmezés szerint a keresőmotor a Standard Lucene-t használja, amely nyelvi agnosztikus. Ha a tesztelés azt jelzi, hogy az alapértelmezett elemző nem megfelelő, cserélje le egy nyelvelemzőre.

Az Azure AI Keresésben a több nyelv támogatásának két mintája a következő:

  • Olyan nyelvspecifikus indexeket hozhat létre, amelyekben az összes olvasható tartalom ugyanabban a nyelven található, és az összes kereshető sztringmező ugyanazt a nyelvelemzőt használja.

  • Hozzon létre egy kevert indexet az egyes mezők nyelvspecifikus verzióival (például description_en, description_fr, description_ko), majd korlátozza a teljes szöveges keresést csak ezekre a mezőkre lekérdezéskor. Ez a megközelítés olyan helyzetekben hasznos, ahol a nyelvi változatokra csak néhány mezőben van szükség, például egy leírásra.

Ez a cikk a nyelvspecifikus mezők vegyes indexben való konfigurálásának és lekérdezésének lépéseit és ajánlott eljárásait ismerteti:

  • Adjon meg egy sztringmezőt az egyes nyelvi változatokhoz.
  • Állítson be egy nyelvelemzőt az egyes mezőkre.
  • A lekérdezési kérelemben állítsa a searchFields paramétert adott mezőkre, majd csak azokat a mezőket adja select vissza, amelyek kompatibilis tartalommal rendelkeznek.

Megjegyzés

Ha nagy nyelvi modelleket használ lekérdezés-központú, kiterjesztett generátor mintában (RAG), megtervezheti a kérdést, hogy lefordított karakterláncokat adjon vissza. Ez a forgatókönyv a cikk hatókörén kívül esik.

Előfeltételek

A nyelvelemzés olyan típusú Edm.String mezőkre vonatkozik, amelyek searchablehonosított szöveget tartalmaznak. Ha szövegfordításra is szüksége van, tekintse át a következő szakaszt, és ellenőrizze, hogy az AI-bővítés megfelel-e az igényeinek.

A nem sztringmezők és a keresésre nem alkalmas sztringmezők nem esnek át lexikai elemzésen, és nincsenek tokenizálva. Ehelyett a rendszer tárolja őket, és szó szerint visszaadja őket.

Szövegfordítás hozzáadása

Ez a cikk feltételezi, hogy a lefordított karakterláncok már léteznek. Ha ez nem így van, csatolhatja az Foundry Tools eszközt egy bővítési folyamathoz, és szövegfordítást invoktálhat az indexelés során. A szövegfordítás függ az indexelő szolgáltatástól és a Foundry Toolstól, de a beállítás az Azure AI Keresésben történik.

Szövegfordítás hozzáadásához kövesse az alábbi lépéseket:

  1. Ellenőrizze, hogy a tartalom támogatott adatforrás-e.

  2. Hozzon létre egy olyan adatforrást , amely a tartalomra mutat.

  3. Hozzon létre egy olyan készségkészletet , amely tartalmazza a szövegfordítási készséget.

    A szövegfordítási képesség egyetlen sztringet vesz fel bemenetként. Ha több mezővel rendelkezik, létrehozhat egy készségkészletet, amely többször is meghívja a szövegfordítást, mindegyik mezőhöz egyszer. Másik lehetőségként használhatja a Szövegegyesítés képességet több mező tartalmának egyetlen hosszú sztringbe való összevonására.

  4. Hozzon létre egy indexet, amely a lefordított sztringek mezőit tartalmazza. A cikk nagy része a többnyelvű tartalmak indexelésével és lekérdezésével kapcsolatos indextervezést és meződefiníciókat ismerteti.

  5. Csatoljon egy Microsoft Foundry-erőforrást a készségkészlethez.

  6. Hozza létre és futtassa az indexelőt, majd az ebben a cikkben szereplő útmutatást alkalmazva csak az érdeklődési köröket kérdezheti le.

Különböző nyelvű tartalmak mezőinek definiálása

Az Azure AI Keresésben a lekérdezések egyetlen indexet céloznak meg. Azok a fejlesztők, akik nyelvspecifikus sztringeket szeretnének megadni egyetlen keresési felületen, általában nyelvenként egy dedikált mezőt határoznak meg az értékek tárolásához, például egy angol és egy francia sztringmezőt.

A analyzer meződefiníció tulajdonsága a nyelvelemző beállítására szolgál. Az indexeléshez és a lekérdezések végrehajtásához is használható.

{
  "name": "hotels-sample",
  "fields": [
    {
      "name": "Description",
      "type": "Edm.String",
      "retrievable": true,
      "searchable": true,
      "analyzer": "en.microsoft"
    },
    {
      "name": "Description_fr",
      "type": "Edm.String",
      "retrievable": true,
      "searchable": true,
      "analyzer": "fr.microsoft"
    }
  ]
}

Index létrehozása és betöltése

Egy köztes lépés az index létrehozása és feltöltése lekérdezés létrehozása előtt. Ezt a lépést itt említjük a teljesség érdekében. Az indexek elérhetőségének meghatározásához az indexek listáját a portálon kell ellenőrizni.

A lekérdezés szűkítése és az eredmények szűkítése

A lekérdezés paramétereivel meghatározott mezőkre korlátozhatja a keresést, majd levághatja a forgatókönyvnek nem megfelelő mezők eredményeit.

Paraméterek Cél
searchFields A teljes szöveges keresés korlátozása az elnevezett mezők listájára.
select A választ korlátozza, hogy csak a megadott mezőket tartalmazza. Alapértelmezés szerint az összes beolvasható mező vissza lesz adva. A select paraméter segítségével kiválaszthatja, hogy melyeket adja vissza.

Adott a cél, hogy a keresést a francia sztringeket tartalmazó mezőkre korlátozzuk; ehhez searchFields-t használ, hogy a lekérdezést az adott nyelven sztringeket tartalmazó mezőkre irányítsa.

Nem szükséges megadni az elemzőt egy lekérdezési kérelemben. A meződefiníció nyelvelemzője határozza meg a szövegelemzést a lekérdezés végrehajtása során. Több mezőt megjelölő lekérdezések esetén, ahol különböző nyelvelemzők vannak használatban, a kifejezések feldolgozását az egyes mezőkhöz rendelt elemzők egyszerre végzik.

Alapértelmezés szerint a keresés az összes beolvashatóként megjelölt mezőt visszaadja. Ezért érdemes lehet kizárni azokat a mezőket, amelyek nem felelnek meg a megadni kívánt nyelvspecifikus keresési felületnek. Pontosabban, ha egy francia sztringet tartalmazó mezőre korlátozta a keresést, valószínűleg ki szeretné zárni az angol sztringeket tartalmazó mezőket az eredményekből. A lekérdezési select paraméter használatával szabályozhatja, hogy mely mezők legyenek visszaadva a hívó alkalmazásnak.

Példa a REST-ben

POST https://[service name].search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "animaux acceptés",
    "searchFields": "Tags, Description_fr",
    "select": "HotelName, Description_fr, Address/City, Address/StateProvince, Tags",
    "count": true
}

Példa a C#-ban

private static void RunQueries(SearchClient srchclient)
{
    SearchOptions options;
    SearchResults<Hotel> response;

    options = new SearchOptions()
    {
        IncludeTotalCount = true,
        Filter = "",
        OrderBy = { "" }
    };

    options.Select.Add("HotelId");
    options.Select.Add("HotelName");
    options.Select.Add("Description_fr");
    options.SearchFields.Add("Tags");
    options.SearchFields.Add("Description_fr");

    response = srchclient.Search<Hotel>("*", options);
    WriteDocuments(response);
}

Nyelvspecifikus mezők kiemelése

Előfordulhat, hogy a lekérdezést kibocsátó ügynök nyelve nem ismert, ebben az esetben a lekérdezés egyszerre minden mezőre kibocsátható. Az eredmények IA-preferenciája egy adott nyelven pontozási profilokkal határozható meg. Az alábbi példában a leírásban szereplő francia nyelvű találatok a más nyelvekben lévő egyezéshez képest magasabb pontszámot kapnak:

  "scoringProfiles": [
    {
      "name": "frenchFirst",
      "text": {
        "weights": { "description_fr": 2 }
      }
    }
  ]

Ezután a pontozási profilt beépíti a keresési kérelembe:

POST /indexes/hotels/docs/search?api-version=2026-04-01
{
  "search": "pets allowed",
  "searchFields": "Tags, Description_fr",
  "select": "HotelName, Tags, Description_fr",
  "scoringProfile": "frenchFirst",
  "count": true
}

Következő lépések