Jak utworzyć indeks wyszukiwania przy użyciu GroupDocs i wyszukiwania synonimów w .NET

W tym przewodniku dowiesz się jak utworzyć indeks wyszukiwania przy użyciu GroupDocs.Search, dodać dokumenty do tego indeksu oraz włączyć wyszukiwanie synonimów, aby użytkownicy mogli znajdować odpowiednie treści nawet przy użyciu innej terminologii. Niezależnie od tego, czy budujesz repozytorium prawne, korporacyjną bazę wiedzy, czy archiwum badawcze, poniższe kroki dostarczają gotowe do produkcji rozwiązanie działające na .NET Framework 4.6.1+, .NET Core i .NET 5+.

Szybkie odpowiedzi

  • Co oznacza „utworzenie indeksu wyszukiwania”? Tworzy przeszukiwalny katalog Twoich dokumentów, przechowując wyodrębniony tekst w zoptymalizowanej strukturze umożliwiającej wyszukiwanie w milisekundach.
  • Dlaczego używać wyszukiwania synonimów? Rozszerza zapytanie o słowa o tym samym znaczeniu, zwiększając przywołanie (recall) nawet o 30 % w typowych korpusach.
  • Jakie są główne wymagania wstępne? .NET 4.6.1+ (lub .NET Core/5+), znajomość C#, oraz pakiety NuGet GroupDocs.Search + GroupDocs.Redaction.
  • Czy potrzebna jest licencja? Darmowa wersja próbna wystarcza do oceny; stała licencja jest wymagana w środowiskach produkcyjnych.
  • Czy mogę połączyć to z redakcją? Tak — GroupDocs.Redaction może działać przed lub po wyszukiwaniu, aby maskować wrażliwe dane.

Co to jest „utworzenie indeksu wyszukiwania”?

Indeks wyszukiwania to struktura danych, która przechowuje wyodrębniony tekst i metadane z każdego dokumentu, umożliwiając silnikowi natychmiastowe znajdowanie pasujących plików. GroupDocs.Search tworzy ten indeks, skanując folder źródłowy, parsując obsługiwane formaty i zapisując kompaktowe pliki indeksu w określonym katalogu.

Dlaczego włączyć wyszukiwanie synonimów?

Wyszukiwanie synonimów automatycznie dodaje alternatywne terminy do zapytania użytkownika, więc wyszukiwanie „improve” zwróci również dokumenty zawierające „enhance”, „upgrade” lub **„optimize”. W praktyce może to zwiększyć przywołanie wyników o 20‑35 %, zachowując wysoką precyzję, ponieważ wbudowany słownik synonimów jest opracowany dla każdego języka.

Wymagania wstępne

  • .NET Framework 4.6.1 lub nowszy (lub dowolny runtime .NET Core/5+).
  • Podstawowe umiejętności programowania w C# oraz Visual Studio (Community, Professional lub Enterprise).
  • Pakiety GroupDocs.Search i GroupDocs.Redaction zainstalowane przez NuGet.

Instalacja

Zainstaluj GroupDocs.Redaction dla .NET używając jednej z poniższych metod (szczegóły w dokumentacji GroupDocs.Redaction .NET):

.NET CLI:

dotnet add package GroupDocs.Redaction

Package Manager Console:

Install-Package GroupDocs.Redaction

Alternatywnie, użyj interfejsu NuGet Package Manager w Visual Studio, aby wyszukać „GroupDocs.Redaction” i zainstalować go bezpośrednio. Referencję API znajdziesz w GroupDocs Redaction API.

Uzyskanie licencji

  • Darmowa wersja próbna: Rozpocznij od wersji próbnej, aby przetestować wszystkie funkcje.
  • Licencja tymczasowa: Złóż wniosek o licencję tymczasową na stronie GroupDocs lub zarządzaj licencją przez portal GroupDocs License Management.
  • Pełny zakup: Gdy jesteś gotowy do produkcji, kup pełną licencję, która usuwa wszystkie ograniczenia wersji próbnej.

Jak skonfigurować GroupDocs.Redaction dla .NET

GroupDocs.Redaction zapewnia podstawową funkcjonalność do redagowania wrażliwych treści przed lub po wyszukiwaniu. Udostępnia klasę Redactor, którą tworzysz, podając licencję i opcjonalne ustawienia konfiguracyjne.

Poniższy kod demonstruje tworzenie instancji redaktora i ładowanie pliku licencji:

// Definition anchor: the Redactor class provides methods to locate and mask text, images, or metadata.
var redactor = new GroupDocs.Redaction.Redactor();
using GroupDocs.Redaction;

// Initialize a new Redactor object with your document path
RedactorSettings settings = new RedactorSettings();
Redactor redactor = new Redactor("YOUR_DOCUMENT_PATH", settings);

Gdy redaktor jest gotowy, możesz później wywołać redactor.Redact(...) na dowolnym dokumencie pobranym z wyników wyszukiwania.

Jak utworzyć indeks wyszukiwania

Utworzenie indeksu wyszukiwania polega na określeniu folderu, w którym będą przechowywane pliki indeksu, a następnie zainicjowaniu klasy Index z GroupDocs.Search. Indeks będzie zawierał wszystkie przeszukiwalne dane wyodrębnione z Twoich dokumentów źródłowych.

Najpierw utwórz katalog dla indeksu, a następnie zainicjuj obiekt Index:

// Definition anchor: the Index class represents the searchable container that holds all indexed documents.
var indexPath = @"C:\MySearchIndex";
var index = new GroupDocs.Search.Index(indexPath);
string indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Searching/SynonymSearch";

Tworzenie indeksu zapisuje zestaw plików binarnych w folderze; pliki te zazwyczaj mają mniej niż 200 KB na 1 000 stron, co pozwala skalować do milionów stron bez wyczerpania przestrzeni dyskowej.

Jak dodać dokumenty do indeksu

Dodawanie dokumentów wymaga skierowania API na katalog zawierający pliki źródłowe i poinstruowania indeksu, aby je zaimportował. Proces parsuje każdy obsługiwany format, wyodrębnia tekst i zapisuje go w indeksie w celu szybkiego odczytu.

Użyj poniższego kodu, aby zaindeksować wszystkie pliki w folderze źródłowym:

// Definition anchor: DocumentSource tells the index where to read files from and which formats to accept.
var sourceFolder = @"C:\MyDocuments";
index.Add(sourceFolder);
using GroupDocs.Search;

Index index = new Index(indexFolder);
// This sets up the index in the specified folder.

GroupDocs.Search obsługuje ponad 30 formatów wejściowych — w tym DOCX, PDF, PPTX, HTML i popularne typy obrazów — dzięki czemu możesz indeksować praktycznie każdy korporacyjny archiwum bez dodatkowych konwerterów.

Jak włączyć i uruchomić wyszukiwanie synonimów

Obsługa synonimów jest włączana za pomocą SearchOptions. Po włączeniu każde zapytanie automatycznie rozszerza się o synonimy z słownika, zwiększając przywołanie bez utraty precyzji.

Włącz wyszukiwanie synonimów przy pomocy poniższego fragmentu kodu:

var options = new GroupDocs.Search.SearchOptions()
{
    UseSynonyms = true
};
var result = index.Search("improve", options);
string documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

Domyślny słownik synonimów zawiera ponad 5 000 par terminów dla języka angielskiego. Możesz także załadować własny plik SynonymDictionary, aby obsługiwać specyficzny żargon branżowy.

Niestandardowy słownik synonimów

Jeśli potrzebujesz synonimów specyficznych dla domeny, załaduj własny plik słownika i przypisz go do SearchOptions przed wykonaniem zapytania.

options.SynonymDictionary = new SynonymDictionary(@"C:\mySynonyms.txt");
var result = index.Search("upgrade", options);
index.Add(documentsFolder);
// This step populates the index with content from your documents.

Typowe wskazówki rozwiązywania problemów

  • Problemy ze ścieżkami: Sprawdź, czy indeks i foldery źródłowe są dostępne dla konta procesu.
  • Ograniczenia licencyjne: Wersja nielicencjonowana może ograniczyć liczbę indeksowanych plików do 100.
  • Brak wyników: Zweryfikuj, czy słownik synonimów jest załadowany; możesz sprawdzić options.SynonymDictionary.Count w czasie wykonywania.

Praktyczne zastosowania

  1. Zarządzanie dokumentami prawnymi: Znajdź orzecznictwo używając terminów prawnych i ich synonimów.
  2. Badania akademickie: Rozszerz wyszukiwanie literatury wśród naukowych PDF‑ów i plików Word.
  3. Korporacyjne bazy wiedzy: Pobieraj wewnętrzne polityki, nawet gdy użytkownicy formułują zapytania inaczej.
  4. Systemy zarządzania treścią: Zapewnij redaktorom bogatsze możliwości odkrywania przy tagowaniu artykułów.
  5. Systemy zgłoszeń wsparcia klienta: Dopasowuj zgłoszenia do znanych problemów, używając synonimicznych opisów problemów.

Rozważania dotyczące wydajności

  • Utrzymanie indeksu: Przeprowadzaj ponowne indeksowanie po masowych aktualizacjach; indeksowanie przyrostowe zmniejsza przestoje o nawet 70 %.
  • Monitorowanie zasobów: Indeksowanie partii 10 GB na standardowej maszynie wirtualnej (2 vCPU, 8 GB RAM) osiąga szczyt ~1,2 GB RAM; ogranicz rozmiar partii, jeśli zbliżasz się do limitów.
  • Zwalnianie obiektów: Wywołaj index.Dispose() i redactor.Dispose() natychmiast po zakończeniu, aby zwolnić zasoby natywne.

Podsumowanie

Teraz wiesz jak utworzyć indeks wyszukiwania przy użyciu GroupDocs, dodać dokumenty do tego indeksu i włączyć wyszukiwanie synonimów, aby zapewnić bardziej intuicyjne doświadczenie użytkownika. Ta podstawa pozwala także na nałożenie redakcji, niestandardowego rankingowania lub dopasowania przybliżonego na sztywno działający silnik wyszukiwania.

Kolejne kroki

  • Eksperymentuj z SearchOptions.FuzzySearch, aby wykrywać literówki.
  • Zbadaj API Ranking, aby podnieść priorytet dokumentów.
  • Dołącz do społeczności na GroupDocs Forum lub Free Support Forum, aby dzielić się wskazówkami i zadawać pytania.
  • Sprawdź Najnowsze wydania GroupDocs, aby uzyskać aktualizacje i nowe funkcje.

Najczęściej zadawane pytania

P: Czym jest wyszukiwanie synonimów?
O: Wyszukiwanie synonimów rozszerza zapytanie użytkownika o zdefiniowane wcześniej alternatywne terminy, zwiększając szansę znalezienia odpowiednich dokumentów używających innego sformułowania.

P: Jak zaktualizować licencję GroupDocs?
O: Odwiedź portal GroupDocs License Management i prześlij nowy plik licencji przy użyciu License.SetLicense("path/to/license.lic").

P: Czy mogę używać wyszukiwania synonimów w środowisku wielojęzycznym?
O: Tak — załaduj plik SynonymDictionary specyficzny dla języka dla każdej obsługiwanej lokalizacji, a silnik zastosuje odpowiedni zestaw synonimów do zapytania.

P: Jakie są najczęstsze problemy z indeksowaniem?
O: Uprawnienia dostępu do plików, nieobsługiwane formaty oraz przekroczenie limitu dokumentów w wersji próbnej to trzy najważniejsze problemy, z którymi spotykają się programiści.

P: Jak mogę zoptymalizować wydajność bardzo dużych indeksów?
O: Używaj indeksowania przyrostowego, przechowuj indeks na dyskach SSD i skonfiguruj IndexingOptions.MaxDegreeOfParallelism tak, aby odpowiadał liczbie rdzeni procesora.

Ostatnia aktualizacja: 2026-09-16
Testowano z: GroupDocs.Search 23.10 dla .NET
Autor: GroupDocs

using GroupDocs.Search.Options;

SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Activate synonym search.
string query = "improve";
SearchResult result = index.Search(query, options);
// This operation returns documents matching 'improve' or its synonyms.

Powiązane samouczki