Jak utworzyć indeks w .NET przy użyciu GroupDocs Search API

W tym samouczku dowiesz się, jak utworzyć indeks dla swoich aplikacji .NET przy użyciu GroupDocs.Search, a następnie chronić wrażliwe treści za pomocą GroupDocs.Redaction. Po zakończeniu przewodnika będziesz w stanie tworzyć, aktualizować i usuwać niepotrzebne elementy wyszukiwalnego indeksu oraz zrozumiesz, dlaczego łączenie wyszukiwania i redakcji jest najlepszą praktyką w bezpiecznym zarządzaniu dokumentami.

Szybkie odpowiedzi

  • Co oznacza „how to create index”? Oznacza budowanie struktury danych umożliwiającej wyszukiwanie, która mapuje zawartość dokumentu na szybkie klucze wyszukiwania.
  • Jakie biblioteki są wymagane? GroupDocs.Search i GroupDocs.Redaction dla .NET (pakiety NuGet).
  • Czy mogę indeksować pliki PDF, Word i obrazy? Tak — obsługiwanych jest ponad 150 formatów od razu po instalacji.
  • Jak usunąć dokument z indeksu? Wywołaj metodę Delete z ścieżką dokumentu lub jego identyfikatorem.
  • Czy redakcja odbywa się przed czy po indeksowaniu? Redakcja powinna odbywać się najpierw, aby chronione dane nigdy nie trafiły do indeksu.

Co oznacza „how to create index”?

Wyrażenie how to create index odnosi się do procesu generowania struktury danych umożliwiającej wyszukiwanie, która przechowuje mapowania termin‑do‑dokumentu dla szybkiego odczytu. W GroupDocs struktura ta znajduje się na dysku i może być aktualizowana przyrostowo bez konieczności przebudowywania całej kolekcji.

Dlaczego używać razem GroupDocs.Search i GroupDocs.Redaction?

GroupDocs.Search obsługuje indeksowanie ponad 150 formatów plików i może obsługiwać indeksy większe niż 10 GB, jednocześnie utrzymując zużycie pamięci poniżej 200 MB, ponieważ strumieniuje pliki zamiast ładować je w całości. Dodanie GroupDocs.Redaction zapewnia, że wszelkie poufne teksty, obrazy lub metadane są usuwane, zanim treść trafi do indeksu, co gwarantuje zgodność z GDPR, HIPAA i innymi regulacjami.

Wymagania wstępne

  • Biblioteki i wersje – Zainstaluj najnowsze pakiety NuGet GroupDocs.Search i GroupDocs.Redaction, które są kompatybilne z .NET 6 lub nowszym.
  • IDE – Visual Studio 2022 (lub dowolne IDE obsługujące .NET 6).
  • Wiedza – Podstawowe umiejętności C#, znajomość operacji I/O na plikach oraz zrozumienie koncepcji indeksowania.

Konfiguracja GroupDocs.Redaction dla .NET

Instalacja

Użycie .NET CLI:

dotnet add package GroupDocs.Redaction

Użycie Package Manager Console w Visual Studio:

Install-Package GroupDocs.Redaction

Możesz również znaleźć „GroupDocs.Redaction” w interfejsie NuGet Package Manager i zainstalować najnowszą stabilną wersję.

Uzyskanie licencji

Możesz uzyskać bezpłatną wersję próbną lub poprosić o tymczasową licencję, aby wypróbować wszystkie funkcje bez ograniczeń. Odwiedź Strona zakupu GroupDocs po więcej szczegółów na temat uzyskania licencji.

Podstawowa inicjalizacja

Redactor jest główną klasą wykonującą operacje redakcji na dokumencie.
Poniższy fragment kodu pokazuje minimalny kod potrzebny do rozpoczęcia korzystania z GroupDocs.Redaction:

// Initialize the Redactor with a file path or stream
using (Redactor redactor = new Redactor("input.docx"))
{
    // Your redaction code here
}

Ta prosta konfiguracja to wszystko, czego potrzebujesz, aby rozpocząć korzystanie z GroupDocs.Redaction.

Przewodnik implementacji

Jak utworzyć indeks?

Index reprezentuje przeszukiwalny kontener, który przechowuje słowniki terminów i metadane dokumentów.
Załaduj lub utwórz obiekt Index, wskaż folder, w którym będą przechowywane pliki indeksu, i wywołaj Create. Operacja zapisuje niezbędne pliki metadanych i przygotowuje silnik do przyjmowania dokumentów.

// Direct answer (40‑70 words):
Create a new `Index` instance by specifying the folder path where the index will reside, then invoke `Create()` to initialise the storage structures. The method writes index headers, term dictionaries, and a lock file, making the folder ready for document addition. This step is required only once per index location.

Krok 1: Utwórz indeks

using GroupDocs.Search;

string indexFolder = @"YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Indexing/DeleteIndexedPaths";
Index index = new Index(indexFolder);
// This line initializes an index at the provided folder path.

Jak dodać dokumenty do indeksu?

Add wstawia pojedynczy dokument do indeksu, natomiast AddFolder przetwarza wszystkie pliki w katalogu.
Pliki dodajesz wywołując Add lub AddFolder. Silnik odczytuje każdy obsługiwany plik, wyodrębnia tekst i aktualizuje słownik terminów.

// Direct answer (40‑70 words):
Use `index.AddFolder("C:\\Docs")` or `index.Add("C:\\Docs\\file.pdf")` to feed documents into the index. The API streams each file, extracts searchable text, and stores term‑frequency data without loading the entire file into memory, which lets you index thousands of large PDFs efficiently.

Krok 2: Dodaj foldery dokumentów

string documentsFolder1 = @"YOUR_DOCUMENT_DIRECTORY";
string documentsFolder2 = @"YOUR_DOCUMENT_DIRECTORY2";

index.Add(documentsFolder1);  // Adding the first folder of documents to the index
index.Add(documentsFolder2);  // Adding the second folder of documents to the index

Jak pobrać zindeksowane ścieżki?

GetIndexedPaths zwraca kolekcję wszystkich ścieżek dokumentów przechowywanych w indeksie.
Pobranie listy zindeksowanych ścieżek plików pozwala zweryfikować, które dokumenty są aktualnie przeszukiwalne.

// Direct answer (40‑70 words):
Call `index.GetIndexedDocuments()` to obtain a collection of `IndexedDocumentInfo` objects, each containing the original file path, document ID, and indexing timestamp. Loop through the collection and output the `FilePath` property to confirm that every expected file has been successfully added.

Krok 3: Wyświetl zindeksowane ścieżki

string[] indexedPaths1 = index.GetIndexedPaths();
foreach (string path in indexedPaths1)
{
    Console.WriteLine(path); // Outputs the document paths
}

Jak usunąć dokument z indeksu?

Delete usuwa dokument z indeksu na podstawie jego ścieżki lub identyfikatora.
Gdy plik zostaje usunięty lub przestaje być aktualny, należy usunąć jego wpis, aby wyniki wyszukiwania były dokładne.

// Direct answer (40‑70 words):
Invoke `index.Delete("C:\\Docs\\obsolete.pdf")` or `index.Delete(documentId)` to purge a specific document from the index. The method removes all term entries linked to that file, updates the term dictionary, and frees the space on disk, ensuring that future queries no longer return the deleted content.

Krok 4: Usuń określone ścieżki

using GroupDocs.Search.Options;

string[] pathsToDelete = { @"YOUR_DOCUMENT_DIRECTORY" };
DeleteResult deleteResult = index.Delete(pathsToDelete, new UpdateOptions());
// This deletes specified document paths from the index.

Jak zweryfikować pozostałe zindeksowane ścieżki po usunięciu?

Po usunięciu możesz ponownie uruchomić metodę pobierania, aby upewnić się, że indeks odzwierciedla aktualny stan.

// Direct answer (40‑70 words):
Run `index.GetIndexedDocuments()` again and compare the resulting list with the pre‑deletion list. The missing file path confirms successful deletion, while the remaining entries confirm the index’s integrity. This verification step is especially important in automated pipelines.

Krok 5: Zweryfikuj pozostałe ścieżki

string[] indexedPaths2 = index.GetIndexedPaths();
foreach (string path in indexedPaths2)
{
    Console.WriteLine(path); // Displays remaining paths after deletion
}

Praktyczne zastosowania

  1. Systemy zarządzania dokumentami – Szybkie znajdowanie umów, faktur lub podręczników wśród milionów plików.
  2. Przegląd dokumentów prawnych – Redagowanie poufnych informacji przed indeksowaniem, aby uniknąć przypadkowego ujawnienia.
  3. Rozwiązania archiwizacyjne – Zachowanie przeszukiwalnych metadanych dla historycznych rekordów bez ładowania całych archiwów do pamięci.
  4. Platformy zarządzania treścią – Zasilanie wyszukiwania na całej stronie dla blogów, baz wiedzy i bibliotek multimedialnych.
  5. Audyt zgodności danych – Zapewnienie, że tylko oczyszczona treść jest przeszukiwalna, spełniając wymogi regulacyjne.

Rozważania dotyczące wydajności

  • Optymalizacja indeksowania – Planuj przyrostowe indeksowanie co noc; używaj AddFolder z rozmiarem partii 100 plików, aby zmniejszyć skoki I/O.
  • Zarządzanie zasobami – Monitoruj CPU i RAM; GroupDocs.Search przetwarza pliki w trybie strumieniowym, utrzymując szczytowe zużycie pamięci poniżej 200 MB nawet przy indeksach 10 GB.
  • Najlepsze praktyki – Przechowuj indeks na dyskach SSD, aby uzyskać odpowiedź na zapytania w czasie poniżej sekundy, oraz włącz kompresję (index.Compression = true), aby zmniejszyć zużycie dysku o połowę.

Najczęściej zadawane pytania

Q: Czy mogę indeksować pliki nienazwane tekstem przy użyciu GroupDocs?
A: Tak, GroupDocs.Search może indeksować ponad 150 formatów — w tym PDF, DOCX, PPTX, XLSX oraz typy obrazów — poprzez wyodrębnianie osadzonego tekstu przy użyciu OCR w razie potrzeby.

Q: Jak radzić sobie z dużą ilością dokumentów?
A: Użyj AddFolder z konfigurowalnym rozmiarem partii, uruchamiaj indeksowanie w usłudze w tle i okresowo wywołuj Optimize(), aby połączyć małe segmenty indeksu.

Q: Jakie są korzyści z używania redakcji wraz z indeksowaniem?
A: Redakcja usuwa dane osobowe zanim trafią do indeksu, co gwarantuje, że wyniki wyszukiwania nigdy nie ujawniają chronionych danych.

Q: Czy można dostosować algorytmy wyszukiwania?
A: GroupDocs.Search oferuje słowniki synonimów, własne tokenizatory oraz filtry wyrażeń regularnych, co pozwala precyzyjnie dostroić ocenę trafności.

Q: Jak rozwiązywać typowe problemy z indeksowaniem?
A: Sprawdź uprawnienia folderów, upewnij się, że środowisko .NET odpowiada docelowemu środowisku biblioteki oraz sprawdź plik dziennika wygenerowany w folderze indeksu, aby uzyskać szczegółowe komunikaty o błędach.

Zasoby

Zapoznaj się z tymi zasobami, aby pogłębić swoją wiedzę i udoskonalić implementację GroupDocs.Search i Redaction w .NET. Szczęśliwego kodowania!


Ostatnia aktualizacja: 2026-07-26
Testowano z: GroupDocs.Search 23.10, GroupDocs.Redaction 23.10 for .NET
Autor: GroupDocs

Powiązane samouczki