Προσθήκη Εγγράφων στο Ευρετήριο για Αναζήτηση χωρίς Διάκριση Πεζών‑Κεφαλαίων σε Java

Όταν χρειάζεστε case insensitive search java που βρίσκει αξιόπιστα πληροφορίες ανεξάρτητα από το πώς τις πληκτρολογούν οι χρήστες, το κλειδί είναι η προσθήκη εγγράφων σε ένα ευρετήριο ενώ κανονικοποιείται το κείμενο. Σε αυτό το σεμινάριο θα σας καθοδηγήσουμε στη διαμόρφωση του GroupDocs.Search για Java ώστε κάθε έγγραφο που ευρετηριάζετε να μετατρέπεται αυτόματα σε πεζά (ή με άλλη μετατροπή) κατά τη διαδικασία ευρετηρίασης, εξασφαλίζοντας αποτελέσματα χωρίς διάκριση πεζών‑κεφαλαίων χωρίς πρόσθετη λογική κατά το ερώτημα.

Γρήγορες Απαντήσεις

  • What does “add documents to index” mean? Σημαίνει τη φόρτωση των αρχικών αρχείων σε μια δομή δεδομένων αναζήτησης ώστε να μπορούν να ερωτηθούν αργότερα.
  • Why use character replacement? Κανονικοποιεί κάθε χαρακτήρα — συνήθως σε πεζά — ώστε οι αναζητήσεις να αγνοούν αυτόματα τις διαφορές πεζών‑κεφαλαίων.
  • Do I need a license? Μια δωρεάν δοκιμή λειτουργεί για ανάπτυξη· απαιτείται πλήρης άδεια για παραγωγικές εγκαταστάσεις.
  • Which Java version is required? Η έκδοση Java 8 ή νεότερη· η βιβλιοθήκη στοχεύει σε Java 11+ για βέλτιστη απόδοση.
  • Can I switch to case‑sensitive search when needed? Ναι—οι επιλογές αναζήτησης σας επιτρέπουν να εναλλάσσετε τη διάκριση πεζών‑κεφαλαίων ανά ερώτημα.

Τι σημαίνει “add documents to index” στο GroupDocs.Search;

Φορτώστε τα αρχεία προέλευσης (PDF, DOCX, TXT κ.λπ.) σε ένα αναζητήσιμο ευρετήριο ώστε η μηχανή να μπορεί να τα ανακτήσει γρήγορα. Η προσθήκη εγγράφων σε ένα ευρετήριο αναλύει κάθε αρχείο, εξάγει απλό κείμενο και το αποθηκεύει σε μια βελτιστοποιημένη δομή δεδομένων που επιτρέπει γρήγορες αναζητήσεις.

Γιατί να ενεργοποιήσετε την αντικατάσταση χαρακτήρων κατά την ευρετηρίαση;

Η αντικατάσταση χαρακτήρων μετατρέπει κάθε χαρακτήρα σε ένα προκαθορισμένο ισοδύναμο — συνήθως σε πεζά — κατά τη δημιουργία του ευρετηρίου. Αυτό εξασφαλίζει ότι οι διαφορές στην κεφαλαιοποίηση, τα διακριτικά ή τα σύμβολα ειδικά για την περιοχή δεν επηρεάζουν τα αποτελέσματα αναζήτησης. Κανονικοποιώντας το κείμενο κατά τη φάση ευρετηρίασης, η μηχανή μπορεί να ταιριάζει τα ερωτήματα με ένα συνεπές σύνολο διακριτικών, παρέχοντας γρήγορη, αξιόπιστη συμπεριφορά χωρίς διάκριση πεζών‑κεφαλαίων χωρίς επιπλέον επεξεργασία σε κάθε αναζήτηση.

Προαπαιτούμενα

  • GroupDocs.Search for Java έκδοση 25.4 ή νεότερη (η βιβλιοθήκη υποστηρίζει πάνω από 30 μορφές αρχείων και μπορεί να ευρετηριάσει έγγραφα πολλαπλών εκατοντάδων σελίδων χωρίς να φορτώνει ολόκληρο το αρχείο στη μνήμη).
  • Java Development Kit (JDK) 8 ή νεότερο εγκατεστημένο.
  • Βασική εξοικείωση με Maven (ή δυνατότητα προσθήκης JAR χειροκίνητα).

Ρύθμιση του GroupDocs.Search για Java

Ρύθμιση Maven

Προσθέστε το αποθετήριο GroupDocs και την εξάρτηση στο pom.xml σας:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/search/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

Άμεση Λήψη

Αν προτιμάτε να μην χρησιμοποιήσετε Maven, κατεβάστε το τελευταίο JAR από την επίσημη ιστοσελίδα: GroupDocs.Search for Java releases.

Απόκτηση Άδειας

  • Free Trial – κατεβάστε μια δοκιμαστική άδεια για να ξεκινήσετε πειραματισμό.
  • Temporary License – ζητήστε μια εκτεταμένη δοκιμαστική άδεια από το portal του GroupDocs.
  • Full License – αγοράστε μια παραγωγική άδεια όταν είστε έτοιμοι να ξεκινήσετε.

Βασική Αρχικοποίηση (Δημιουργία του ευρετηρίου)

Το παρακάτω απόσπασμα δημιουργεί έναν φάκελο ευρετηρίου και ενεργοποιεί τις αντικαταστάσεις χαρακτήρων:

import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);
Index index = new Index(indexFolder, settings);

Οδηγός Υλοποίησης

Ενεργοποίηση Αντικατάστασης Χαρακτήρων στις Ρυθμίσεις Ευρετηρίου

Η ενεργοποίηση αυτής της λειτουργίας ενημερώνει τη μηχανή να αντικαθιστά χαρακτήρες κατά την ευρετηρίαση, που αποτελεί το βασικό βήμα για τη συμπεριφορά χωρίς διάκριση πεζών‑κεφαλαίων.

Βήμα 1: Διαμόρφωση του IndexSettings

IndexSettings είναι το αντικείμενο διαμόρφωσης που ελέγχει πώς το ευρετήριο αποθηκεύει και επεξεργάζεται το κείμενο. Ορίζοντας το useCharacterReplacements σε true, ενεργοποιείτε την αυτόματη μετατροπή σε πεζά (ή οποιονδήποτε προσαρμοσμένο χάρτη παρέχετε).

import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";

// Create an instance of IndexSettings and enable character replacement.
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);

// Initialize the index with these settings.
Index index = new Index(indexFolder, settings);

Διαμόρφωση Αντικατάστασης Χαρακτήρων

Αντιστοιχίστε κάθε χαρακτήρα με το αντίστοιχο πεζό (ή οποιονδήποτε προσαρμοσμένο χάρτη χρειάζεστε).

Βήμα 2: Ορισμός και Προσθήκη Ζευγών Αντικατάστασης

Το λεξικό αντικατάστασης περιέχει ζεύγη όπως 'A' → 'a', 'É' → 'e', κ.λπ. Η προσθήκη αυτών των ζευγών πριν την ευρετηρίαση εξασφαλίζει ότι κάθε διακριτικό είναι κανονικοποιημένο.

import com.groupdocs.search.dictionaries.CharacterReplacementPair;

// Access existing replacements and clear them.
index.getDictionaries().getCharacterReplacements().clear();

// Create an array for new replacements.
CharacterReplacementPair[] characterReplacements = new CharacterReplacementPair[Character.MAX_VALUE + 1];
for (int i = 0; i < characterReplacements.length; i++) {
    char originalChar = (char) i;
    char replacementChar = Character.toLowerCase(originalChar);
    characterReplacements[i] = new CharacterReplacementPair(originalChar, replacementChar);
}

// Add these replacements to the index's dictionary.
index.getDictionaries().getCharacterReplacements().addRange(characterReplacements);

Ευρετηρίαση Εγγράφων

Τώρα που το ευρετήριο είναι έτοιμο, μπορείτε να add documents to index από οποιονδήποτε φάκελο.

Βήμα 3: Προσθήκη Εγγράφων για Ευρετηρίαση

Το GroupDocs.Search σαρώει τον προορισμό, εξάγει κείμενο από κάθε υποστηριζόμενο τύπο αρχείου, εφαρμόζει τον χάρτη αντικατάστασης και γράφει τα διακριτικά στην αποθήκη του ευρετηρίου.

import com.groupdocs.search.Index;

String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

// Initialize the index and add documents.
Index index = new Index(indexFolder, settings);
index.add(documentFolder);

Εκτέλεση Αναζήτησης με Διάκριση Πεζών‑Κεφαλαίων (Προαιρετικό)

Βήμα 4: Εκτέλεση Αναζητήσεων με Διάκριση Πεζών‑Κεφαλαίων

SearchOptions διαμορφώνει τη συμπεριφορά του ερωτήματος, όπως η εναλλαγή της διάκρισης πεζών‑κεφαλαίων, επιτρέποντας λεπτομερή έλεγχο του τρόπου εκτέλεσης των αναζητήσεων.
SearchOptions.setUseCaseSensitiveSearch(true) αναγκάζει τη μηχανή να αντιμετωπίζει τους κεφαλαίους και πεζούς χαρακτήρες ως διαφορετικούς κατά ένα συγκεκριμένο ερώτημα, παρακάμπτοντας τη προεπιλεγμένη συμπεριφορά χωρίς διάκριση πεζών‑κεφαλαίων.

import com.groupdocs.search.Index;
import com.groupdocs.search.SearchOptions;
import com.groupdocs.search.results.SearchResult;

String query = "Promotion";
SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

// Perform the search.
Index index = new Index(indexFolder, settings);
SearchResult result = index.search(query, options);

Πρακτικές Εφαρμογές

  1. Marketing Campaigns – Κανονικοποιήστε τα ονόματα προϊόντων ώστε οι ομάδες πωλήσεων να μπορούν να εντοπίζουν τα περιουσιακά στοιχεία χωρίς να ανησυχούν για την κεφαλαιοποίηση.
  2. Customer Support – Ενισχύστε τα πλαίσια αναζήτησης του help‑desk που επιστρέφουν το σωστό άρθρο είτε ο χρήστης πληκτρολογήσει “login” είτε “Login”.
  3. E‑commerce Catalogs – Διασφαλίστε ότι οι αγοραστές βρίσκουν τα προϊόντα ανεξάρτητα από το πώς πληκτρολογούν τους τίτλους, βελτιώνοντας τα ποσοστά μετατροπής.

Σκέψεις Απόδοσης

  • Organize Source Files – Μια τακτοποιημένη ιεραρχία φακέλων μειώνει το χρόνο σάρωσης κατά το βήμα add documents to index.
  • Monitor Memory – Η ευρετηρίαση μεγάλων σωμάτων κειμένου μπορεί να καταναλώσει σημαντική μνήμη RAM· η επεξεργασία αρχείων σε παρτίδες των 500 – 1 000 στοιχείων διατηρεί τη χρήση του σωρού υπό έλεγχο.
  • Asynchronous Indexing – Όταν υποστηρίζεται, εκτελέστε την ευρετηρίαση σε νήμα παρασκηνίου για να διατηρήσετε το UI ανταποκρινόμενο και να αποφύγετε το μπλοκάρισμα των λειτουργιών του χρήστη.

Συχνά Προβλήματα & Επίλυση

ΣύμπτωμαΠιθανή ΑιτίαΔιόρθωση
Δεν επιστρέφονται αποτελέσματα για γνωστό όροΟι αντικαταστάσεις χαρακτήρων δεν είναι ενεργοποιημένεςΕπαληθεύστε ότι το settings.setUseCharacterReplacements(true) είναι ενεργό και ότι ο χάρτης αντικατάστασης περιέχει τους απαιτούμενους χαρακτήρες.
Σφάλμα έλλειψης μνήμης (Out‑of‑memory) κατά την ευρετηρίασηΕυρετηρίαση πάρα πολλών μεγάλων αρχείων ταυτόχροναΕυρετηρίαση σε μικρότερες παρτίδες ή αύξηση του heap της JVM (-Xmx4g).
Η αναζήτηση επιστρέφει αποτελέσματα με διάκριση πεζών‑κεφαλαίων απροσδόκηταΤο SearchOptions.setUseCaseSensitiveSearch(true) είχε οριστείΑφαιρέστε ή ορίστε σε false για την προεπιλεγμένη συμπεριφορά χωρίς διάκριση πεζών‑κεφαλαίων.
Ο χρόνος φόρτωσης του ευρετηρίου υπερβαίνει τις προσδοκίεςΑναποτελεσματική διάταξη φακέλων ή μη χρήση SSDΑναδιοργανώστε τα αρχεία, αφαιρέστε αχρησιμοποίητα έγγραφα και αποθηκεύστε το ευρετήριο σε γρήγορο SSD.
Οι ειδικοί χαρακτήρες αγνοούνταιΟ χάρτης αντικατάστασης δεν περιέχει εγγραφές UnicodeΠροσθέστε αντιστοιχίες για χαρακτήρες όπως “é”, “ß”, “ø” στα επιθυμητά ισοδύναμα.

Συχνές Ερωτήσεις

Q: Πώς να διαχειριστώ ειδικούς χαρακτήρες (π.χ., “é”, “ß”) κατά την ευρετηρίαση;
A: Συμπεριλάβετε αυτούς τους χαρακτήρες στο χάρτη αντικατάστασης, αντιστοιχίζοντάς τους στα ισοδύναμα ASCII ή διατηρώντας τους αμετάβλητους ανάλογα με τις απαιτήσεις αναζήτησης.

Q: Μπορώ να περιορίσω την αντικατάσταση χαρακτήρων σε συγκεκριμένη γλώσσα;
A: Ναι. Δημιουργήστε έναν προσαρμοσμένο πίνακα αντικατάστασης που περιέχει μόνο τους χαρακτήρες της επιλεγμένης γλώσσας πριν τον προσθέσετε στο λεξικό.

Q: Τι πρέπει να κάνω αν η φόρτωση του ευρετηρίου διαρκεί πολύ;
A: Βελτιστοποιήστε τη δομή των φακέλων, αφαιρέστε περιττά αρχεία και αποθηκεύστε το ευρετήριο σε γρήγορο SSD. Η επαυξητική (incremental) ευρετηρίαση μειώνει επίσης το φορτίο φόρτωσης.

Q: Είναι δυνατόν να αναιρέσω τις αντικαταστάσεις χαρακτήρων μετά την ευρετηρίαση;
A: Όχι. Οι αντικαταστάσεις ενσωματώνονται στα δεδομένα του ευρετηρίου· πρέπει να ξαναδημιουργήσετε το ευρετήριο με νέες ρυθμίσεις για να τις αλλάξετε.

Q: Πού μπορώ να βρω πιο αναλυτική τεκμηρίωση API;
A: Η επίσημη τεκμηρίωση και η αναφορά API παρέχουν λεπτομερείς πληροφορίες (δείτε τους Πόρους παρακάτω).

Πόροι


Τελευταία Ενημέρωση: 2026-07-31
Δοκιμάστηκε Με: GroupDocs.Search 25.4 for Java
Συγγραφέας: GroupDocs

Σχετικά Μαθήματα