Ładowanie danych do indeksu wyszukiwania w usłudze Azure AI Search

W tym artykule wyjaśniono, jak zaimportować dokumenty do wstępnie zdefiniowanego indeksu wyszukiwania. W usłudze Azure AI Search indeks wyszukiwania jest tworzony najpierw z importem danych, wykonując drugi krok. Wyjątkiem są kreatory importu w potokach portalu i indeksatora, które tworzą i ładują indeks w jednym przepływie pracy.

Jak działa importowanie danych

Usługa wyszukiwania akceptuje dokumenty JSON zgodne ze schematem indeksu. Usługa wyszukiwania importuje i indeksuje zwykły tekst i wektory w formacie JSON, używane w scenariuszach wyszukiwania pełnotekstowego, wyszukiwania wektorów, wyszukiwania hybrydowego i wyszukiwania wiedzy.

  • Zawartość zwykłego tekstu jest uzyskiwana z pól alfanumerycznych w zewnętrznym źródle danych, metadanych, które są przydatne w scenariuszach wyszukiwania lub wzbogaconej zawartości utworzonej przez zestaw umiejętności (umiejętności mogą wyodrębniać lub wnioskować opisy tekstowe z obrazów i zawartości bez struktury).

  • Zawartość wektorowa jest wektoryzowana przy użyciu zewnętrznego modelu osadzania lub zintegrowanej wektoryzacji przy użyciu funkcji usługi Azure AI Search, które integrują się z zastosowaną sztuczną inteligencją.

Te dokumenty można przygotować samodzielnie, ale jeśli zawartość znajduje się w obsługiwanym źródle danych, uruchomienie indeksatora lub użycie kreatora importu może zautomatyzować pobieranie dokumentów, serializacji JSON i indeksowanie.

Po zaindeksowanym indeksie fizyczne struktury danych indeksu są zablokowane. Aby uzyskać wskazówki dotyczące tego, co można zmienić i których nie można zmienić, zobacz Aktualizowanie i ponowne kompilowanie indeksu.

Indeksowanie nie jest procesem w tle. Usługa wyszukiwania zrównoważy indeksowanie i obciążenia zapytań, ale jeśli opóźnienie zapytań jest zbyt wysokie, możesz dodać pojemność lub zidentyfikować okresy niskiej aktywności zapytań na potrzeby ładowania indeksu.

Aby uzyskać więcej informacji, zobacz Strategie importowania danych.

Korzystanie z witryny Azure Portal

W witrynie Azure Portal użyj kreatorów importu, aby utworzyć i załadować indeksy w bezproblemowym przepływie pracy. Jeśli chcesz załadować istniejący indeks, wybierz alternatywne podejście.

  1. Zaloguj się do witryny Azure Portal przy użyciu konta platformy Azure i znajdź usługę wyszukiwania.

  2. Na stronie Przegląd wybierz pozycję Importuj dane lub Importuj i wektoryzuj dane na pasku poleceń, aby utworzyć i wypełnić indeks wyszukiwania.

    Zrzut ekranu przedstawiający polecenie Importuj dane

    Skorzystaj z poniższych linków, aby przejrzeć przepływ pracy: Szybki start: tworzenie indeksu usługi Azure AI Search i szybki start: wektoryzacja zintegrowana.

  3. Po zakończeniu pracy kreatora użyj Eksploratora wyszukiwania, aby sprawdzić wyniki.

Napiwek

Kreatory importu tworzą i uruchamiają indeksatory. Jeśli indeksatory są już zdefiniowane, możesz zresetować i uruchomić indeksator w witrynie Azure Portal, co jest przydatne w przypadku przyrostowego dodawania pól. Polecenie Reset wymusza rozpoczęcie od początku indeksatora i pobieranie wszystkich pól ze wszystkich dokumentów źródłowych.

Korzystanie z interfejsów API REST

Dokumenty — indeks to interfejs API REST umożliwiający importowanie danych do indeksu wyszukiwania. Interfejsy API REST są przydatne do początkowego testowania koncepcji, w którym można testować przepływy pracy indeksowania bez konieczności pisania dużej ilości kodu. Parametr @search.action określa, czy dokumenty są dodawane w całości, czy częściowo pod względem nowych lub zastępczych wartości dla określonych pól.

Szybki start: wyszukiwanie tekstu przy użyciu interfejsu REST wyjaśnia kroki. Poniższy przykład to zmodyfikowana wersja przykładu. Została ona przycięta do zwięzłości, a pierwsza wartość HotelId została zmieniona, aby uniknąć zastępowania istniejącego dokumentu.

  1. Sformułuj wywołanie POST określające nazwę indeksu, punkt końcowy "docs/index" i treść żądania zawierającą @search.action parametr .

    POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01
    Content-Type: application/json   
    api-key: [admin key] 
    {
        "value": [
        {
        "@search.action": "upload",
        "HotelId": "1111",
        "HotelName": "Secret Point Motel",
        "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.",
        "Category": "Boutique",
        "Tags": [ "pool", "air conditioning", "concierge" ]
        },
        {
        "@search.action": "mergeOrUpload",
        "HotelId": "2",
        "HotelName": "Twin Dome Motel",
        "Description": "This is description is replacing the original one for this hotel. New and changed values overwrite the previous ones. In a comma-delimited list like Tags, be sure to provide the full list because there is no merging of values within the field itself.",
        "Category": "Boutique",
        "Tags": [ "pool", "free wifi", "concierge", "my first new tag", "my second new tag" ]
        }
      ]
    }
    
  2. Ustaw parametr na wartość , @search.action aby upload utworzyć lub zastąpić dokument. Ustaw go na merge wartość lub uploadOrMerge jeśli są przeznaczone aktualizacje do określonych pól w dokumencie. W poprzednim przykładzie przedstawiono obie akcje.

    Akcja Efekt
    Scalanie Aktualizuje dokument, który już istnieje, i kończy się niepowodzeniem dokumentu, którego nie można odnaleźć. Scalanie zastępuje istniejące wartości. Z tego powodu należy sprawdzić pola kolekcji zawierające wiele wartości, takie jak pola typu Collection(Edm.String). Jeśli na przykład tags pole rozpoczyna się od wartości ["budget"] i wykonujesz scalanie z wartością ["economy", "pool"], końcową wartością tags pola jest ["economy", "pool"]. Nie będzie ["budget", "economy", "pool"]to .
    mergeOrUpload Zachowuje się jak scalanie, jeśli dokument istnieje, i przekazuje, czy dokument jest nowy. Jest to najbardziej typowa akcja aktualizacji przyrostowych.
    przekaż Podobnie jak "upsert", w którym dokument jest wstawiany, jeśli jest on nowy, i aktualizowany lub zastępowany, jeśli istnieje. Jeśli w dokumencie brakuje wartości, których indeks wymaga, wartość pola dokumentu jest ustawiona na wartość null.
  3. Wyślij żądanie.

  4. Wyszukaj właśnie dodane dokumenty jako krok weryfikacji:

    GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
    

Gdy klucz lub identyfikator dokumentu jest nowy, wartość null staje się wartością dowolnego pola, które nie jest określone w dokumencie. W przypadku akcji w istniejącym dokumencie zaktualizowane wartości zastępują poprzednie wartości. Wszystkie pola, które nie zostały określone w "merge" lub "mergeUpload", pozostają nienaruszone w indeksie wyszukiwania.

Korzystanie z zestawów SDK platformy Azure

Programowalność jest dostępna w następujących zestawach SDK platformy Azure.

Zestaw Azure SDK dla platformy .NET udostępnia następujące interfejsy API umożliwiające proste i zbiorcze przekazywanie dokumentów do indeksu:

Istnieje kilka przykładów ilustrujących indeksowanie w kontekście prostego i na dużą skalę indeksowania:

Zobacz też