Wyszukiwanie zawartości usługi Azure Blob Storage

Wyszukiwanie w różnych typach zawartości przechowywanych w usłudze Azure Blob Storage może być trudnym problemem, ale usługa Azure AI Search zapewnia głęboką integrację z warstwą zawartości, wyodrębnianie i wnioskowanie informacji tekstowych, które następnie można wykonywać zapytania w indeksie wyszukiwania.

W tym artykule zapoznaj się z podstawowym przepływem pracy umożliwiającym wyodrębnianie zawartości i metadanych z obiektów blob oraz wysyłanie ich do indeksu wyszukiwania w usłudze Azure AI Search. Wynikowy indeks można odpytować przy użyciu wyszukiwania pełnotekstowego. Opcjonalnie możesz wysłać przetworzoną zawartość obiektu blob do magazynu wiedzy dla scenariuszy niezwiązanych z wyszukiwaniem.

Uwaga

Znasz już przepływ pracy i kompozycję? Konfigurowanie indeksatora obiektów blob to kolejny krok.

Co to znaczy dodać wyszukiwanie pełnotekstowe do danych obiektów blob

Azure AI Search to autonomiczna usługa wyszukiwania, która obsługuje obciążenia indeksowania i wykonywania zapytań za pośrednictwem indeksów zdefiniowanych przez użytkownika, które zawierają prywatną zawartość z możliwością wyszukiwania hostowaną w chmurze. Współlokowanie zawartości z możliwością wyszukiwania za pomocą aparatu zapytań w chmurze jest niezbędne do zapewnienia wydajności, co pozwala szybko oczekiwać wyników od zapytań wyszukiwania.

Usługa Azure AI Search integruje się z usługą Azure Blob Storage w warstwie indeksowania, importując zawartość obiektu blob jako dokumenty wyszukiwania, które są indeksowane do indeksowanych indeksów i innych struktur zapytań, które obsługują zapytania tekstowe i wyrażenia filtrów w dowolnej formie. Ponieważ zawartość obiektu blob jest indeksowana w indeksie wyszukiwania, możesz użyć pełnego zakresu funkcji zapytań w usłudze Azure AI Search, aby znaleźć informacje w zawartości obiektu blob.

Dane wejściowe to obiekty blob w jednym kontenerze w usłudze Azure Blob Storage. Obiekty blob mogą być niemal dowolnym rodzajem danych tekstowych. Jeśli obiekty blob zawierają obrazy, możesz dodać wzbogacanie sztucznej inteligencji w celu utworzenia i wyodrębnienia tekstu i funkcji z obrazów.

Dane wyjściowe są zawsze indeksem usługi Azure AI Search, używanym do szybkiego wyszukiwania tekstu, pobierania i eksploracji w aplikacjach klienckich. Między jest sama architektura potoku indeksowania. Potok jest oparty na funkcji indeksatora , omówiony dokładniej w tym artykule.

Po utworzeniu i wypełnieniu indeksu istnieje niezależnie od kontenera obiektów blob, ale możesz ponownie uruchomić operacje indeksowania, aby odświeżyć indeks na podstawie zmienionych dokumentów. Informacje o sygnaturze czasowej poszczególnych obiektów blob są używane do wykrywania zmian. Możesz wybrać zaplanowane wykonywanie lub indeksowanie na żądanie jako mechanizm odświeżania.

Zasoby używane w rozwiązaniu do wyszukiwania obiektów blob

Potrzebujesz usługi Azure AI Search, usługi Azure Blob Storage i klienta. Usługa Azure AI Search jest zazwyczaj jednym z kilku składników w rozwiązaniu, w którym kod aplikacji wystawia zapytania o żądania interfejsu API i obsługuje odpowiedź. Możesz również napisać kod aplikacji do obsługi indeksowania, chociaż w przypadku testowania weryfikacji koncepcji i zaimprowizowania zadań często używa się witryny Azure Portal jako klienta wyszukiwania.

W usłudze Blob Storage potrzebny jest kontener, który udostępnia zawartość źródłową. Możesz ustawić kryteria dołączania i wykluczania plików oraz określić, które części obiektu blob są indeksowane w usłudze Azure AI Search.

Możesz uruchomić bezpośrednio na stronie portalu konta magazynu.

  1. Na lewej stronie nawigacji w obszarze Zarządzanie danymi wybierz pozycję Azure AI Search , aby wybrać lub utworzyć usługę wyszukiwania.

  2. Wykonaj kroki opisane w kreatorze, aby wyodrębnić i opcjonalnie utworzyć zawartość z możliwością wyszukiwania z obiektów blob. Przepływ pracy jest kreatorem importu danych. Przepływ pracy tworzy indeksator, źródło danych, indeks i zestaw umiejętności opcji w usłudze Azure AI usługa wyszukiwania.

    Zrzut ekranu przedstawiający kreatora usługi Azure AI Search na stronie portalu usługi Azure Storage.

  3. Użyj Eksploratora wyszukiwania na stronie portalu wyszukiwania, aby wysłać zapytanie do zawartości.

Kreator jest najlepszym miejscem do uruchomienia, ale podczas samodzielnego konfigurowania indeksatora obiektów blob znajdziesz bardziej elastyczne opcje. Możesz użyć klienta REST. Samouczek: indeksowanie i wyszukiwanie częściowo ustrukturyzowanych danych (obiektów blob JSON) przeprowadzi Cię przez kroki wywoływania interfejsu API REST.

Jak indeksowane są obiekty blob

Domyślnie większość obiektów blob jest indeksowana jako pojedynczy dokument wyszukiwania w indeksie, w tym obiekty blob z zawartością ustrukturyzowaną, taką jak JSON lub CSV, które są indeksowane jako pojedynczy fragment tekstu. Jednak w przypadku dokumentów JSON lub CSV, które mają strukturę wewnętrzną (ograniczniki), można przypisać tryby analizowania w celu wygenerowania poszczególnych dokumentów wyszukiwania dla każdego wiersza lub elementu:

Złożony lub osadzony dokument (taki jak archiwum ZIP, dokument programu Word z osadzoną wiadomością e-mail programu Outlook zawierającą załączniki lub . Plik MSG z załącznikami) jest również indeksowany jako pojedynczy dokument. Na przykład wszystkie obrazy wyodrębnione z załączników obiektu . Plik MSG zostanie zwrócony w polu normalized_images. Jeśli masz obrazy, rozważ dodanie wzbogacania sztucznej inteligencji , aby uzyskać więcej narzędzi wyszukiwania z tej zawartości.

Tekstowa zawartość dokumentu jest wyodrębniona do pola ciągu o nazwie "content". Można również wyodrębnić standardowe i zdefiniowane przez użytkownika metadane.

Uwaga

Usługa Azure AI Search nakłada limity indeksatora na ilość wyodrębnianego tekstu w zależności od warstwy cenowej. W odpowiedzi stanu indeksatora zostanie wyświetlone ostrzeżenie, jeśli dokumenty zostaną obcięte.

Wyodrębnianie zawartości za pomocą indeksatora obiektów blob

Indeksator to podusługa z obsługą źródła danych w usłudze Azure AI Search, wyposażona w wewnętrzną logikę do próbkowania danych, odczytywanie i pobieranie danych oraz metadanych oraz serializowanie danych z natywnych formatów do dokumentów JSON w celu późniejszego importu.

Obiekty blob w usłudze Azure Storage są indeksowane przy użyciu indeksatora obiektów blob. Ten indeksator można wywołać za pomocą polecenia Azure AI Search w usłudze Azure Storage, kreatora importu danych , interfejsu API REST lub zestawu SDK platformy .NET. W kodzie ten indeksator jest używany przez ustawienie typu i podanie informacji o połączeniu, które zawiera konto usługi Azure Storage wraz z kontenerem obiektów blob. Obiekty blob można podzestawować, tworząc katalog wirtualny, który można następnie przekazać jako parametr lub filtrując rozszerzenie typu pliku.

Indeksator "pęka dokument", otwierając obiekt blob w celu sprawdzenia zawartości. Po nawiązaniu połączenia ze źródłem danych jest to pierwszy krok w potoku. W przypadku danych obiektów blob są wykrywane pliki PDF, dokumenty pakietu Office i inne typy zawartości. Pękanie dokumentów za pomocą wyodrębniania tekstu nie jest naliczane. Jeśli obiekty blob zawierają zawartość obrazu, obrazy są ignorowane, chyba że dodasz wzbogacanie sztucznej inteligencji. Indeksowanie standardowe dotyczy tylko zawartości tekstowej.

Indeksator obiektów blob platformy Azure zawiera parametry konfiguracji i obsługuje śledzenie zmian, jeśli bazowe dane zawierają wystarczające informacje. Więcej informacji na temat podstawowych funkcji można uzyskać w artykule Indeksowanie danych z usługi Azure Blob Storage.

Obsługiwane warstwy dostępu

Warstwy dostępu magazynu obiektów blob obejmują warstwy dostępu Gorąca, Chłodna i Archiwum. Dostęp do indeksatorów może uzyskiwać tylko gorąca i chłodna.

Obsługiwane typy zawartości

Uruchamiając indeksator obiektów blob w kontenerze, można wyodrębnić tekst i metadane z następujących typów zawartości za pomocą jednego zapytania:

  • CSV (zobacz Indeksowanie obiektów blob CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (zobacz Indeksowanie obiektów blob JSON)
  • KML (XML dla reprezentacji geograficznych)
  • Formaty pakietu Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (wiadomości e-mail programu Outlook), XML (zarówno 2003, jak i 2006 WORD XML)
  • Otwieranie formatów dokumentów: ODT, ODS, ODP
  • PDF
  • Pliki zwykłego tekstu (zobacz też Indeksowanie zwykłego tekstu)
  • RTF
  • Plik XML
  • ZIP

Kontrolowanie indeksowanych obiektów blob

Możesz kontrolować, które obiekty blob są indeksowane i które są pomijane przez typ pliku obiektu blob lub przez ustawienie właściwości obiektu blob na samym obiekcie blob, co powoduje, że indeksator pomija je.

Uwzględnij określone rozszerzenia plików, ustawiając "indexedFileNameExtensions" na rozdzielaną przecinkami listę rozszerzeń plików (z kropką wiodącą). Wyklucz określone rozszerzenia plików, ustawiając "excludedFileNameExtensions" na rozszerzenia, które powinny zostać pominięte. Jeśli to samo rozszerzenie znajduje się na obu listach, zostanie wykluczone z indeksowania.

PUT /indexers/[indexer name]?api-version=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Dodawanie metadanych "skip" obiektu blob

Parametry konfiguracji indeksatora dotyczą wszystkich obiektów blob w kontenerze lub folderze. Czasami chcesz kontrolować sposób indeksowania poszczególnych obiektów blob .

Dodaj następujące właściwości i wartości metadanych do obiektów blob w usłudze Blob Storage. Gdy indeksator napotka tę właściwość, pominie obiekt blob lub jego zawartość w przebiegu indeksowania.

Nazwa właściwości Wartości właściwości Wyjaśnienie
"AzureSearch_Skip" "true" Nakazuje indeksatorowi obiektów blob całkowite pominięcie obiektu blob. Ani metadane, ani wyodrębnianie zawartości nie są podejmowane. Jest to przydatne, gdy określony obiekt blob wielokrotnie kończy się niepowodzeniem i przerywa proces indeksowania.
"AzureSearch_SkipContent" "true" Jest to odpowiednik "dataToExtract" : "allMetadata" ustawienia opisanego powyżej w zakresie określonego obiektu blob.

Indeksowanie metadanych obiektu blob

Typowym scenariuszem, który ułatwia sortowanie obiektów blob dowolnego typu zawartości, jest indeksowanie zarówno niestandardowych metadanych, jak i właściwości systemu dla każdego obiektu blob. W ten sposób informacje dotyczące wszystkich obiektów blob są indeksowane niezależnie od typu dokumentu przechowywanego w indeksie w usłudze wyszukiwania. Przy użyciu nowego indeksu możesz następnie przejść do sortowania, filtrowania i aspektu dla całej zawartości usługi Blob Storage.

Uwaga

Tagi indeksu obiektów blob są natywnie indeksowane przez usługę Blob Storage i udostępniane do wykonywania zapytań. Jeśli atrybuty klucza/wartości obiektu blob wymagają możliwości indeksowania i filtrowania, tagi indeksu obiektów blob powinny być używane zamiast metadanych.

Aby dowiedzieć się więcej na temat indeksu obiektów blob, zobacz Zarządzanie danymi i znajdowanie ich w usłudze Azure Blob Storage za pomocą indeksu obiektów blob.

Wyszukiwanie zawartości obiektu blob w indeksie wyszukiwania

Dane wyjściowe indeksatora to indeks wyszukiwania używany do eksploracji interakcyjnej przy użyciu wolnego tekstu i filtrowanych zapytań w aplikacji klienckiej. W celu wstępnej eksploracji i weryfikacji zawartości zalecamy rozpoczęcie pracy z Eksploratorem wyszukiwania w portalu w celu zbadania struktury dokumentów. W Eksploratorze wyszukiwania można użyć:

Bardziej trwałe rozwiązanie polega na zbieraniu danych wejściowych zapytań i prezentowaniu odpowiedzi jako wyników wyszukiwania w aplikacji klienckiej. W poniższym samouczku języka C# wyjaśniono, jak utworzyć aplikację wyszukiwania: Dodawanie wyszukiwania do aplikacji platformy ASP.NET Core (MVC).

Następne kroki