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.
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ésben a typeahead vagy a "gépelés közbeni keresés" be van kapcsolva egy javaslattevő használatával. A javaslattevő egy index konfigurációja, amely meghatározza, hogy mely mezőket kell használni az automatikus kiegészítés és a javasolt egyezések feltöltéséhez. Ezek a mezők extra tokenizáláson mennek keresztül, és előtagsorozatokat hoznak létre, amelyek támogatják a részleges feltételekkel való egyezéseket. Egy olyan javaslattevő, amely tartalmaz egy city mezőt a Seattle értékkel, előtag kombinációkkal, mint például sea, seat, seatt, és seattl, támogatja a beírás közbeni kiegészítést.
A részleges kifejezések egyezései lehetnek automatikusan kitöltött lekérdezések vagy javasolt egyezések. Ugyanaz a javaslattevő mindkét élményt támogatja.
Typeahead-élmények
Az Azure AI Keresés előnézete lehet automatikus kiegészítés, amely egy lekérdezés részleges
Az alábbi képernyőkép mindkettőt szemlélteti. Az automatikus kiegészítés egy lehetséges kifejezésre számít, befejezve twin-nel. A javaslatok a mini keresési eredmények, ahol egy mező, például hotel name egy megfelelő szállodai keresési dokumentumot jelöl az indexből. Javaslatok esetén bármely olyan mezőt felszínre helyezhet, amely leíró információkat tartalmaz.
Ezeket a funkciókat külön vagy együtt is használhatja. Ezeknek a viselkedéseknek az Azure AI Keresésben való implementálásához van egy index- és lekérdezésösszetevő.
Javaslattevő hozzáadása keresési index definícióhoz. A cikk további része egy javaslattevő létrehozására összpontosít.
Javaslattevő-kompatibilis lekérdezés meghívása javaslatkérés vagy automatikus kiegészítési kérelem formájában a Javaslat használata listában felsorolt API-k egyikével.
A keresés mezőnkénti engedélyezése a szövegmezők esetében történik. Mindkét előnézeti funkciót implementálhatja ugyanabban a keresési megoldásban, ha a képernyőképen láthatóhoz hasonló élményt szeretne. Mindkét kérés egy adott index dokumentumgyűjteményét célozza meg, és a válaszok akkor lesznek visszaadva, ha egy felhasználó legalább három karakterből álló bemeneti sztringet ad meg.
Javaslattevő létrehozása
Javaslattevő létrehozásához adjon hozzá egyet egy indexdefinícióhoz. A javaslattevők olyan nevet és mezők gyűjteményét használják, amelyeken engedélyezve van a típusfejléc használata. A javaslattevő létrehozásának legjobb ideje akkor van, amikor a használó mezőt is definiálják.
Csak sztringmezőket használjon.
Ha a karakterlánc mező egy összetett típus része (például egy Címen belüli Város mező), tartalmazza a szülőt a mező útvonalban:
"Address/City"(REST, C# és Python) vagy["Address"]["City"](JavaScript).Használja az alapértelmezett standard Lucene-elemzőt (
"analyzer": null) vagy egy nyelvelemzőt (például"analyzer": "fr.microsoft") a mezőben.
Ha egy javaslattevőt próbál létrehozni az előző mezők használatával, az API letiltja azt. Az előtagok az indexelés során jönnek létre, amikor két vagy több karakterkombináció részleges kifejezései tokenizálva vannak a teljes kifejezések mellett. Mivel a meglévő mezők már tokenizáltak, újra kell építenie az indexet, ha hozzá szeretné adni őket egy javaslattevőhöz. További információ: Index frissítése vagy újraépítése az Azure AI Keresésben.
Mezők kiválasztása
Bár a javaslattevő rendszer számos tulajdonsággal rendelkezik, elsősorban karakterlánc mezők gyűjteménye, amelyeken gépelés közbeni keresési élményt engedélyez. Minden indexhez egy javaslatot kell tenni, ezért a javaslattevők listájának tartalmaznia kell az összes olyan mezőt, amely tartalommal járul hozzá mind a javaslatokhoz, mind az automatikus kiegészítéshez.
Az automatikus kiegészítés előnye, hogy egy nagyobb mezőkészletből kell kiindulni, mert a további tartalom több kifejezéskimeneti potenciállal rendelkezik.
A javaslatok viszont jobb eredményeket eredményeznek, ha a mezőválasztás szelektív. Ne feledje, hogy a javaslat egy keresési dokumentum proxyja, ezért válasszon olyan mezőket, amelyek a legjobban egy találatot jelölnek. A több egyezést megkülönböztető nevek, címek vagy egyéb egyedi mezők a legjobban működnek. Ha a mezők ismétlődő értékekből állnak, a javaslatok azonos eredményekből állnak, és a felhasználó nem tudja, melyiket válassza.
A mindkét keresés-közben-gépel-élmény kielégítése érdekében adja hozzá az összes szükséges mezőt az automatikus kiegészítéshez, majd használja a select, top, filter és searchFields címkéket a javaslatok eredményeinek szabályozásához.
Elemzők kiválasztása
Az elemző kiválasztása határozza meg a mezők tokenizálásának és előtagjának módját. Például egy kötőjeles sztring, mint például a környezetfüggő, a nyelvi elemző használata a következő token kombinációkat eredményezi: környezet, függő, környezetfüggő. Ha a standard Lucene-elemzőt használta volna, az elválasztott karakterlánc nem létezne.
Az elemzők kiértékelésekor fontolja meg az Analyze Text API használatát a kifejezések feldolgozásának elemzéséhez. Miután létrehoz egy indexet, kipróbálhat különböző elemzőket egy karakterláncon a tokén kimenetének megtekintéséhez.
Az egyéni elemzőket vagy beépített elemzőket használó mezők (a standard Lucene kivételével) kifejezetten nem engedélyezettek a gyenge eredmények elkerülése érdekében.
Megjegyzés
Amennyiben meg kell kerülnie az elemző korlátozását, például ha kulcsszó- vagy ngram-elemzőre van szüksége bizonyos lekérdezési forgatókönyvekhez, két külön mezőt kell használni ugyanannak a tartalomnak. Ez lehetővé teszi, hogy az egyik mező javaslatot tegyen, míg a másik egyéni elemzőkonfigurációval állítható be. Ha indexelőt használ, a forrásmezőket két különböző indexmezőhöz rendelheti, hogy több konfigurációt is támogatjon.
Azure portal használatával történő létrehozás
Az Azure Portalon megadhat egy javaslattevőt, amikor az Index hozzáadása lehetőséget választja.
- Válassza az Index hozzáadása lehetőséget, és adjon hozzá egy sztringmezőt.
- A kereshető mező hozzárendelésének beállítása.
- Válasszon ki egy elemzőt.
- A mezők meghatározása után válassza az Automatikus kiegészítés beállításai lehetőséget.
- Jelölje ki azokat a kereshető sztringmezőket, amelyekhez engedélyezni szeretné az automatikus kiegészítési felületet.
Hozzon létre REST használatával
A REST API-ban adjon hozzá javaslattevőket az Index létrehozásával.
{
"name": "hotels-sample",
"fields": [
. . .
{
"name": "HotelName",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": true,
"searchable": true,
"sortable": false,
"analyzer": "en.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
},
],
"suggesters": [
{
"name": "sg",
"searchMode": "analyzingInfixMatching",
"sourceFields": ["HotelName"]
}
],
"scoringProfiles": [
. . .
]
}
Létrehozás a .NET használatával
A C#-ban definiáljon egy SearchSuggester objektumot.
Suggesters Egy SearchIndex-objektum gyűjteménye, de csak egy elemet vehet igénybe. Adjon hozzá egy javaslatot az indexdefinícióhoz.
private static void CreateIndex(string indexName, SearchIndexClient indexClient)
{
FieldBuilder fieldBuilder = new FieldBuilder();
var searchFields = fieldBuilder.Build(typeof(Hotel));
var definition = new SearchIndex(indexName, searchFields);
var suggester = new SearchSuggester("sg", new[] { "HotelName", "Category", "Address/City", "Address/StateProvince" });
definition.Suggesters.Add(suggester);
indexClient.CreateOrUpdateIndex(definition);
}
Tulajdonsághivatkozás
| Tulajdonság | Leírás |
|---|---|
| név | A javaslattevő definíciójában van megadva, de automatikus kiegészítési vagy javaslatkérést is kért. |
| forrásmezők | A javaslattevő definíciójában van megadva. Ez az index egy vagy több olyan mezőjének listája, amely a tartalom forrása a javaslatokhoz. A mezőknek típusnak Edm.Stringkell lenniük. Ha egy elemző van megadva a mezőben, akkor a LexicalAnalyzerName Struct-ban felsorolt nevesített lexikális elemzőnek kell lennie (nem egyéni elemzőnek).
Ajánlott eljárásként csak azokat a mezőket adja meg, amelyek a várt és megfelelő választ adják meg, függetlenül attól, hogy egy keresősávban vagy egy legördülő listában befejezett sztringről van-e szó. A szálloda neve jó jelölt, mert precizitással rendelkezik. A részletes mezők, például a leírások és a megjegyzések túl sűrűek. Hasonlóképpen az ismétlődő mezők, például kategóriák és címkék kevésbé hatékonyak. A példákban kategória is szerepel, amely azt mutatja be, hogy több mezőt is felvehet. |
| keresési mód | CSAK REST paraméter, de az Azure Portalon is látható. Ez a paraméter nem érhető el a .NET SDK-ban. A jelölt kifejezések keresésére használt stratégiát jelzi. Jelenleg csak az analyzingInfixMatching mód támogatott, amely a kifejezés elejére illeszkedik. |
Javaslattevő használata
A rendszer egy javaslattevőt használ egy lekérdezésben. A javaslattevő létrehozása után hívja meg az alábbi API-k egyikét, hogy ön által használt keresési élményt nyújtsunk:
Egy keresőalkalmazásban az ügyfélkódnak egy olyan kódtárat kell használnia, mint a jQuery felhasználói felület automatikus kiegészítése a részleges lekérdezés összegyűjtéséhez és az egyezés megadásához. A feladatról további információt az Automatikus kiegészítés vagy javasolt eredmények hozzáadása az ügyfélkódhoz című témakörben talál.
Az API-használatot az automatikus kiegészítési REST API következő hívása szemlélteti. Ebből a példából két lehetőség van. Először is, mint minden lekérdezés esetében, a művelet egy index dokumentumgyűjteményén van, és a lekérdezés tartalmaz egy paramétert search , amely ebben az esetben a részleges lekérdezést biztosítja. Másodszor, hozzá kell adnia suggesterName a kéréshez. Ha egy javaslattevő nincs definiálva az indexben, az automatikus kiegészítésre irányuló hívások vagy javaslatok sikertelenek.
POST /indexes/myxboxgames/docs/autocomplete?search&api-version=2026-04-01
{
"search": "minecraf",
"suggesterName": "sg"
}
Mintakód
Ha tudni szeretné, hogyan használhat nyílt forráskód Javaslatcsomagot az ügyfélalkalmazás részleges befejezéséhez, tekintse meg a .NET keresési kódját.
Következő lépés
További információ a kérések megfogalmazásáról.