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.
Poniżej omówiono następujące tematy:
- Interfejs API platformy .NET do wyszukiwania pełnotekstowego
- Wyszukiwanie pełnotekstowe
- Wykonaj wyszukiwanie w języku C#
- Zaznacz wyniki wyszukiwania
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.
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.
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.