Zanim przejdziemy do szczegółów, zapoznajmy się z techniką wyszukiwania pełnotekstowego. Wyszukiwanie pełnotekstowe to zasadniczo bardziej zaawansowany sposób wyszukiwania tekstu/zapytania w zbiorze dokumentów. Takie podejście szybko znajduje wszystkie wystąpienia terminu i działa przy użyciu indeksów tekstowych. W tym artykule dowiemy się, jak programowo przeszukiwać cały tekst w dokumentach przy użyciu języka C#.

Następnie możesz wdrożyć różne techniki wyszukiwania w celu wyszukiwania tekstu w dokumentach edytorów tekstu, arkuszach kalkulacyjnych, prezentacjach, plikach HTML, eBookach PDF, wiadomościach e-mail, archiwach ZIP i wielu innych plikach.

Jednym z przykładów implementacji wyszukiwania pełnotekstowego są edytory tekstu i edytory tekstu. Pomaga znaleźć frazę lub słowo w dowolnym miejscu w dokumencie.

Wyszukiwanie pełnotekstowe

Poniżej omówiono następujące tematy:

Interfejs API platformy .NET do wyszukiwania tekstu

GroupDocs.Search for .NET to interfejs API wyszukiwania zaplecza, który umożliwia wyszukiwanie pełnotekstowe i może być zintegrowany z dowolną aplikacją .NET bez zależności od narzędzi lub oprogramowania innych firm. Umożliwia przeszukiwanie wielu formatów dokumentów w aplikacjach.

Możesz pobrać instalator bibliotek DLL lub MSI z sekcji pobierania lub zainstalować interfejs API w swojej aplikacji .NET za pośrednictwem NuGet.

PM> Install-Package GroupDocs.Search

Wyszukiwanie pełnotekstowe przy użyciu języka C#

Istnieją dwa główne kroki, aby wykonać lub zaimplementować wyszukiwanie pełnotekstowe.

  • Indeksowanie
  • Wykonaj wyszukiwanie

Indeksowanie

Aby umożliwić natychmiastowe przeszukiwanie tysięcy dokumentów o tych samych lub różnych formatach plików, należy utworzyć indeks i dodać do niego te dokumenty.

Co to jest indeks?

Indeks zawiera zeskanowany tekst wszystkich dokumentów. Dlatego, gdy zamierzasz przeprowadzić operację wyszukiwania (wyszukiwanie określonego zapytania), odwołuje się tylko do indeksu, a nie do tekstu oryginalnych dokumentów.

Tworzenie indeksu

Indeks można utworzyć w pamięci lub na dysku. Indeks utworzony w pamięci nie może zostać zapisany po wyjściu z programu. Natomiast indeks utworzony na dysku może zostać załadowany w przyszłości, aby kontynuować pracę. Poniższy przykład pokazuje, jak utworzyć indeks na dysku.

Index index = new Index("indexPath/FolderName/");

Gdy dokumenty są indeksowane, indeks jest gotowy do obsługi zapytań wyszukiwania. Poniżej przedstawiono niektóre techniki wyszukiwania, które można wykonać za pomocą GroupDocs.Search for .NET:

  • Wyszukiwanie z rozróżnianiem wielkości liter
  • Wyszukiwanie wyrażeń regularnych
  • Wyszukiwanie fraz
  • Wyszukiwanie fasetowe
  • Wyszukiwanie synonimów
  • Wyszukiwanie wieloznaczne

Wykonaj wyszukiwanie w języku C#

Zaczynając od przypadku użycia. Jeśli mamy wiele dokumentów (Word, PDF, Excel i HTML) i chcemy wykonać na nich określone zapytanie (wyszukiwane hasło „wideo”).

Poniżej przedstawiono kroki przeprowadzania wyszukiwania tekstowego w wielu dokumentach w folderze:

  • Zdecyduj o folderze dokumentów źródłowych i folderze indeksu.
  • Przygotuj ciąg zapytania.
  • Utwórz Indeks, korzystając z folderu indeksu.
  • Dodaj folder dokumentów źródłowych do indeksu.
  • Wykonaj wyszukiwanie przy użyciu metody Search Index klasy.
  • Przeglądaj i przeszukuj wyniki dla właściwości każdego dokumentu.

Poniższy kod źródłowy przeprowadza wyszukiwanie tekstu przy użyciu języka C# we wszystkich dokumentach w podanym folderze.

// Wyszukaj tekst zapytania we wszystkich dokumentach podanego folderu w języku C#
string indexFolder =  @"indexPath/GroupDocs/index/";
string documentsFolder = @"documentPath/GroupDocs/source/";
string query = "video";

// Tworzenie indeksu w określonym folderze i dodanie folderu dokumentów do Indeksu
Index index = new Index(indexFolder);
index.Add(documentsFolder);

// Wyszukiwanie w indeksie
SearchResult result = index.Search(query);
Console.WriteLine("Documents found: " + result.DocumentCount);

// Przejrzyj każdy dokument wyniku wyszukiwania
foreach (FoundDocument document in result)
{
    Console.WriteLine("Document Path : " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurance : " + document.OccurrenceCount);
}

Otrzymamy ścieżkę dokumentu i liczbę wystąpień wyszukiwanego hasła we wszystkich dokumentach dostępnych w folderze dokumentów. Oto zrzut ekranu do wizualizacji.

Wyjście tekstowe pełnego wyszukiwania

Podświetl wyniki wyszukiwania tekstowego w języku C#

Przeprowadźmy teraz to samo wyszukiwanie tekstowe, ale tym razem podświetlimy wszystkie wystąpienia pasujące do zapytania.

Poniższe kroki pokazują, jak wyróżnić wyniki wyszukiwania tekstowego:

  • Przygotuj ciąg zapytania.
  • Utwórz Indeks, używając ścieżki folderu indeksu.
  • Dodaj folder dokumentów źródłowych do indeksu.
  • Przeszukaj folder dokumentów za pomocą metody Szukaj.
  • Przechodząc przez wyniki wyszukiwania, utwórz Zakreślacz.
  • Użyj metody Highlight klasy Index, aby podświetlić wyniki wyszukiwania.

Poniższy kod generuje dane wyjściowe HTML z wyróżnionymi wynikami wyszukiwania przy użyciu języka C#.

string indexFolder =    @"indexPath/GroupDocs/index/";
string documentFolder = @"documentPath/GroupDocs/source/";
string query = "draw";

// Utwórz indeks w określonym folderze i dodaj folder dokumentów do Indeksu
Index index = new Index(indexFolder);
index.Add(documentFolder);

// Wyszukaj słowo zapytania
SearchResult result = index.Search(query);

// Zaznacz wszystkie wystąpienia w tekście
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
                    
    string path = indexFolder + "Highlighted-"+ i +".html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); 
    Highlighter highlighter = new HtmlHighlighter(outputAdapter); 
    index.Highlight(document, highlighter);
}

Jako wynik otrzymamy wiele plików HTML. Każdy plik pokaże zawartość innego dokumentu (np. excel.xlsx, source.docx, target.docx) z podświetlonym wyszukiwanym terminem/słowem. Poniżej podano podświetlone wyjście HTML pliku DOCX.

Wyróżnij wyniki wyszukiwania pełnotekstowego w treści

Uzyskaj bezpłatną licencję API

Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z API bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule nauczyliśmy się wyszukiwać tekst w wielu dokumentach w folderze przy użyciu języka C#. Ponadto omówiliśmy, jak programowo wyróżniać tekst wyników wyszukiwania w formacie HTML.

Możesz dowiedzieć się więcej o API korzystając z documentation. Wiele innych przykładów jest dostępnych na GitHub. W przypadku pytań skontaktuj się z nami za pośrednictwem forum.

Zobacz też