Index elvetése és újraépítése az Azure AI Searchben

Ez a cikk bemutatja, hogyan lehet elvetni és újraépíteni egy Azure AI Search-indexet. Ismerteti az újraépítések szükséges körülményeit, és javaslatokat nyújt az újraépítések folyamatban lévő lekérdezési kérelmekre gyakorolt hatásának mérséklésére. Ha gyakran kell újraépítenie, javasoljuk, hogy használjon index-aliasokat , hogy könnyebben felcserélhesse, hogy melyik indexre mutat az alkalmazás.

Az aktív fejlesztés során gyakran előfordul, hogy az indexek elvetése és újraépítése az indexek tervezése során történik. A legtöbb fejlesztő az adatok egy kis reprezentatív mintával dolgozik, hogy az újraindexelés gyorsabb legyen.

Újraépítést igénylő módosítások

Az alábbi táblázat az index elvetéséhez és újraépítéséhez szükséges módosításokat sorolja fel.

Művelet Leírás
Mező törlése Egy mező összes nyomának fizikai eltávolításához újra kell építenie az indexet. Ha az azonnali újraépítés nem praktikus, módosíthatja az alkalmazás kódját, hogy átirányítsa a hozzáférést egy elavult mezőről, vagy használja a searchFields parancsot , és válassza ki a lekérdezési paramétereket, hogy kiválassza a keresett és visszaadott mezőket. Fizikailag a meződefiníció és a tartalom az indexben marad a következő újraépítésig, amikor olyan sémát alkalmaz, amely kihagyja a szóban forgó mezőt.
Meződefiníció módosítása A mezőnév, adattípus vagy adott indexattribútumok (kereshető, szűrhető, rendezhető, facetable) korrektúrái teljes újraépítést igényelnek.
Elemző hozzárendelése mezőhöz Az elemzők egy indexben vannak definiálva, mezőkhöz vannak rendelve, majd meghívhatók az indexelés során, hogy tájékoztassák a jogkivonatok létrehozásának módját. Az indexhez bármikor hozzáadhat új elemződefiníciót, de csak a mező létrehozásakor rendelhet hozzá elemzőt. Ez az elemző és az indexAnalyzer tulajdonságaira is igaz. A searchAnalyzer tulajdonság kivétel (ezt a tulajdonságot hozzárendelheti egy meglévő mezőhöz).
Elemződefiníció frissítése vagy törlése egy indexben A meglévő elemzőkonfigurációk (elemző, jogkivonat-elemző, jogkivonatszűrő vagy karakterszűrő) csak akkor törölhetők vagy módosíthatók az indexben, ha a teljes indexet újraépíti.
Mező hozzáadása javaslattevőhöz Ha egy mező már létezik, és hozzá szeretné adni egy Javaslattevő-szerkezethez , építse újra az indexet.
Rétegek váltása A helyszíni frissítések nem támogatottak. Ha több kapacitásra van szüksége, hozzon létre egy új szolgáltatást, és építse újra az indexeket az alapoktól. A folyamat automatizálásához használhatja az index-backup-restore mintakódot ebben az Azure AI Search .NET-mintaadattárban. Ez az alkalmazás JSON-fájlok sorozatára készít biztonsági másolatot az indexről, majd újból létrehozza az indexet egy ön által megadott keresési szolgáltatásban.

Újraépítési követelmény nélküli módosítások

Sok más módosítást is elvégezhet anélkül, hogy hatással lenne a meglévő fizikai struktúrákra. Az alábbi módosítások nem igényelnek index-újraépítést. Ezekhez a módosításokhoz frissíthet egy meglévő indexdefiníciót a módosításokkal.

  • Új mező hozzáadása
  • A lekért attribútum beállítása egy meglévő mezőben
  • SearchAnalyzer frissítése meglévő indexelővel rendelkező mezőn
  • Új elemződefiníció hozzáadása indexhez (amely új mezőkre alkalmazható)
  • Pontozási profilok hozzáadása, frissítése vagy törlése
  • CORS-beállítások hozzáadása, frissítése vagy törlése
  • Szinonima hozzáadása, frissítése vagy törlése Térképek
  • Szemantikai konfigurációk hozzáadása, frissítése vagy törlése

Új mező hozzáadásakor a meglévő indexelt dokumentumok null értéket kapnak az új mezőhöz. Egy későbbi adatfrissítés során a külső forrásadatok értékei felülírják az Azure AI Search által hozzáadott null értékeket. Az indextartalom frissítéséről további információt a Dokumentumok hozzáadása, frissítése vagy törlése című témakörben talál.

Index újraépítése

A fejlesztés során az indexséma gyakran változik. Megtervezheti, ha olyan indexeket hoz létre, amelyek egy kis reprezentatív adatkészlettel gyorsan törölhetők, újra létrehozhatók és újra betölthetők.

Az éles környezetben lévő alkalmazások esetében javasoljuk, hogy hozzon létre egy új indexet, amely egy meglévő index mellett fut, hogy elkerülje a lekérdezés állásidejét. Az alkalmazáskód átirányítást biztosít az új indexhez.

  1. Keressen helyet. Search szolgáltatás az indexek maximális száma függ a szolgáltatási szinttől. Győződjön meg arról, hogy van helye egy második indexnek.

  2. Határozza meg, hogy szükség van-e újraépítésre. Ha csak mezőket ad hozzá, vagy az index egy olyan részét módosítja, amely nem kapcsolódik a mezőkhöz, előfordulhat, hogy egyszerűen frissítheti a definíciót törlés, újrakészítés és teljes újratöltés nélkül.

  3. Szerezze be az indexdefiníciót arra az esetre, ha későbbi referenciához szüksége lenne rá.

  4. A meglévő index elvetése, feltéve, hogy nem futtat egymás mellett új és régi indexeket.

    Az indexet megcélzó lekérdezéseket a rendszer azonnal elveti. Ne feledje, hogy az index törlése visszafordíthatatlan, ami megsemmisíti a mezők gyűjteményének és egyéb szerkezeteinek fizikai tárolását. Mielőtt elejtené, gondolja át a következményeket.

  5. Hozzon létre egy módosított indexet, amelyben a kérelem törzse módosított vagy módosított meződefiníciókat tartalmaz.

  6. Töltse be az indexet külső forrásból származó dokumentumokkal .

Az index létrehozásakor a rendszer lefoglalja a fizikai tárolót az indexséma egyes mezőihez, és minden kereshető mezőhöz létrehoz egy fordított indexet. A nem kereshető mezők szűrőkben vagy kifejezésekben használhatók, de nem rendelkeznek fordított indexekkel, és nem teljes szöveges vagy homályos kereshetőek. Az indexek újraépítésekor ezek az invertált indexek törlődnek és újra létrejönnek a megadott indexséma alapján.

Az index betöltésekor minden mező invertált indexe minden egyes dokumentum egyedi, jogkivonatos szavaival van feltöltve, és megfelelteti a megfelelő dokumentumazonosítókat. Egy szállodai adatkészlet indexelésekor például a Város mezőhöz létrehozott invertált indexek seattle-i, portlandi és így tovább kifejezéseket tartalmazhatnak. A Város mezőben Seattle-t vagy Portlandet tartalmazó dokumentumok esetében a kifejezés mellett szerepelne a dokumentumazonosító. Minden Hozzáadás , Frissítés vagy Törlés művelet esetén a feltételek és a dokumentumazonosítók listája ennek megfelelően frissül.

Számítási feladatok kiegyensúlyozása

Az indexelés nem fut a háttérben, de a keresési szolgáltatás kiegyensúlyozza az indexelési feladatokat a folyamatban lévő lekérdezésekkel. Az indexelés során figyelheti a lekérdezési kérelmeket a portálon, hogy a lekérdezések időben befejeződjenek.

Ha a számítási feladatok indexelése elfogadhatatlan mértékű lekérdezési késést eredményez, végezzen teljesítményelemzést , és tekintse át ezeket a teljesítménytippeket a lehetséges kockázatcsökkentés érdekében.

Frissítések keresése

Az első dokumentum betöltése után azonnal megkezdheti az index lekérdezését. Ha ismeri egy dokumentum azonosítóját, a Keresési dokumentum REST API visszaadja az adott dokumentumot. A szélesebb körű teszteléshez meg kell várnia, amíg az index teljesen betöltődik, majd lekérdezésekkel ellenőrizheti a várt környezetet.

A frissített tartalom kereséséhez használhatja a Search Explorert vagy a REST-ügyfelet.

Ha hozzáadott vagy átnevezett egy mezőt, a $select használatával adja vissza a mezőt:search=*&$select=document-id,my-new-field,some-old-field&$count=true

Lásd még