Βελτιώστε το χρόνο απόκρισης της αναζήτησης με προχωρημένη ευρετηρίαση στο GroupDocs

Στο σημερινό γρήγορα εξελισσόμενο ψηφιακό περιβάλλον, η βελτίωση του χρόνου απόκρισης της αναζήτησης είναι απαραίτητη για την παροχή άμεσων αποτελεσμάτων στους χρήστες. Είτε δημιουργείτε μια προσαρμοσμένη μηχανή αναζήτησης είτε βελτιώνετε ένα υπάρχον σύστημα διαχείρισης εγγράφων, η σωστή στρατηγική ευρετηρίασης μπορεί να μειώσει δραστικά τον χρόνο απόκρισης, να μειώσει την κατανάλωση πόρων και να βελτιώσει το χρόνο απόκρισης της αναζήτησης συνολικά. Σε αυτό το σεμινάριο θα εξετάσουμε τις πιο ισχυρές δυνατότητες του GroupDocs.Search για Java — ακύρωση, ασύγχρονη ευρετηρίαση, πολυνηματική επεξεργασία και προσαρμογή μεταδεδομένων — ώστε να μπορείτε να προσθέτετε έγγραφα στο ευρετήριο πιο γρήγορα και αποδοτικά.

Τι θα μάθετε

  • Πώς να ακυρώσετε μια λειτουργία ευρετηρίασης μετά από καθορισμένο χρόνο
  • Εκτέλεση ασύγχρονων λειτουργιών ευρετηρίασης και διαχείριση αλλαγών κατάστασης
  • Διαμόρφωση πολυνηματικότητας για ταχύτερη ευρετηρίαση
  • Προσαρμογή επιλογών ευρετηρίασης μεταδεδομένων για προσαρμογή μεταδεδομένων αναζήτησης

Ας βεβαιωθούμε ότι έχετε όλα όσα χρειάζεστε πριν βουτήξουμε στον κώδικα.

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

  • Τι κάνει η ακύρωση; Σταματά την ευρετηρίαση μετά από ένα καθορισμένο χρονικό όριο, ελευθερώνοντας CPU και μνήμη για άλλες εργασίες.
  • Μπορώ να ευρετηριάσω έγγραφα ασύγχρονα; Ναι – ενεργοποιήστε το με options.setAsync(true).
  • Πόσα νήματα μπορώ να χρησιμοποιήσω; Οποιοσδήποτε θετικός ακέραιος· 2‑4 νήματα είναι τυπικά για τους περισσότερους διακομιστές.
  • Είναι η ευρετηρίαση μεταδεδομένων προαιρετική; Απόλυτα – μπορείτε να την ενεργοποιήσετε ή να την ρυθμίσετε λεπτομερώς ανά πεδίο.
  • Χρειάζομαι άδεια για αυτές τις λειτουργίες; Μια δοκιμαστική άδεια λειτουργεί για δοκιμές· απαιτείται πλήρης άδεια για παραγωγή.

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

  • GroupDocs.Search library – έκδοση 25.4 ή νεότερη.
  • Java Development Environment – συνιστάται JDK 8 ή νεότερο.
  • Βασική εξοικείωση με τη Java και την έννοια της ευρετηρίασης.

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

Εγκατάσταση Maven

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

pom.xml configuration tells Maven which GroupDocs.Search artifacts to download and include in your project.

<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>

Άμεση λήψη

Εναλλακτικά, κατεβάστε το πιο πρόσφατο JAR από GroupDocs.Search for Java releases.

Απόκτηση άδειας – Ξεκινήστε με μια δωρεάν δοκιμή ή ζητήστε προσωρινή άδεια για να ξεκλειδώσετε το πλήρες σύνολο λειτουργιών.

Βασική αρχικοποίηση και ρύθμιση

Η κλάση SearchIndex είναι το σημείο εισόδου που αντιπροσωπεύει ένα ευρετήσιμο ευρετήριο αποθηκευμένο στο δίσκο ή στη μνήμη.

import com.groupdocs.search.*;

public class IndexSetup {
    public static void main(String[] args) {
        String indexFolder = "YOUR_OUTPUT_DIRECTORY\\Index";
        
        // Create an instance of the Index class
        Index index = new Index(indexFolder);
        System.out.println("Index created at: " + indexFolder);
    }
}

Τι σημαίνει «βελτιστοποίηση της απόδοσης αναζήτησης» σε αυτό το πλαίσιο;

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

Γιατί να χρησιμοποιήσετε προχωρημένες λειτουργίες ευρετηρίασης;

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

Πώς να βελτιώσετε το χρόνο απόκρισης της αναζήτησης με προχωρημένη ευρετηρίαση;

Φορτώστε το αντικείμενο SearchIndex, διαμορφώστε το IndexingOptions με ρυθμίσεις ακύρωσης, ασύγχρονης λειτουργίας και αριθμού νημάτων, και στη συνέχεια καλέστε index.add(document) — αυτός ο συνδυασμός μειώνει το συνολικό χρόνο ευρετηρίασης έως και 60 % σε τυπικά φορτία εργασίας και εγγυάται ότι οι μακροχρόνιες εργασίες δεν θα μπλοκάρουν άλλες λειτουργίες. Μπορείτε επίσης να προσαρμόσετε τα όρια ευρετηρίασης μεταδεδομένων και να παρακολουθείτε την πρόοδο μέσω των γεγονότων αλλαγής κατάστασης για να διασφαλίσετε ότι η διαδικασία παραμένει εντός των προϋπολογισμών απόδοσης.

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

Ιδιότητα ακύρωσης

Επισκόπηση – Ακυρώστε την ευρετηρίαση μετά από καθορισμένη διάρκεια για να αποφύγετε την υπερβολική κατανάλωση πόρων.

Βήμα 1: ρύθμιση του περιβάλλοντος

Δημιουργήστε ένα αντικείμενο SearchIndex που δείχνει στο φάκελο του ευρετηρίου σας.

import com.groupdocs.search.*;
import com.groupdocs.search.options.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY\\CancellationProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

Βήμα 2: δημιουργία επιλογών ευρετηρίασης με ακύρωση

IndexingOptions σας επιτρέπει να καθορίσετε πώς συμπεριφέρεται η μηχανή ευρετηρίασης.

// Create an instance of Index and IndexingOptions
Index index = new Index(indexFolder);
IndexingOptions options = new IndexingOptions();

// Set a cancellation object
options.setCancellation(new Cancellation());
options.getCancellation().cancelAfter(3000);

// Add documents to the index with these options
index.add(documentFolder, options);

Κύρια σημεία

  • setCancellation() ενεργοποιεί τη λειτουργία.
  • cancelAfter(int milliseconds) ορίζει το χρονικό όριο (3 δευτερόλεπτα σε αυτό το παράδειγμα).

Ιδιότητα ασύγχρονης λειτουργίας

Επισκόπηση – Εκτελέστε την ευρετηρίαση σε ένα νήμα παρασκηνίου και ακούστε τις αλλαγές κατάστασης.

Βήμα 1: ρύθμιση του περιβάλλοντος

Δημιουργήστε το ευρετήριο και προετοιμάστε τη συλλογή εγγράφων.

import com.groupdocs.search.*;
import com.groupdocs.search.events.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY\\IsAsyncProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

Βήμα 2: εγγραφή στο γεγονός αλλαγής κατάστασης

Το γεγονός StatusChanged σας ενημερώνει όταν η εργασία ευρετηρίασης μεταβαίνει μεταξύ καταστάσεων.

Index index = new Index(indexFolder);

// Subscribe to the status changed event
index.getEvents().StatusChanged.add(new EventHandler<BaseIndexEventArgs>() {
    @Override
    public void invoke(Object sender, BaseIndexEventArgs args) {
        if (args.getStatus() == IndexStatus.Ready || args.getStatus() == IndexStatus.Failed) {
            System.out.println("Operation completed with status: " + args.getStatus());
        }
    }
});

Βήμα 3: διαμόρφωση ασύγχρονων επιλογών

Ενεργοποιήστε τη λειτουργία async ώστε η κλήση να επιστρέφει αμέσως και η επεξεργασία να συνεχίζεται στο παρασκήνιο.

IndexingOptions options = new IndexingOptions();
options.setAsync(true);

index.add(documentFolder, options);

Ιδιότητα νημάτων

Επισκόπηση – Επιταχύνετε την ευρετηρίαση αξιοποιώντας πολλαπλούς πυρήνες CPU.

Βήμα 1: ρύθμιση του περιβάλλοντος

Προετοιμάστε το ευρετήριο και βεβαιωθείτε ότι η JVM διαθέτει αρκετή μνήμη heap.

import com.groupdocs.search.*;
import com.groupdocs.search.options.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY\\ThreadsProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

Βήμα 2: διαμόρφωση πολυνηματικότητας

Ορίστε τον αριθμό των εργατικών νημάτων· κάθε νήμα επεξεργάζεται ένα υποσύνολο εγγράφων.

Index index = new Index(indexFolder);
IndexingOptions options = new IndexingOptions();

// Specify 2 threads for the operation
options.setThreads(2);

index.add(documentFolder, options);

Ιδιότητα επιλογών ευρετηρίασης μεταδεδομένων

Επισκόπηση – Ρυθμίστε λεπτομερώς ποια μεταδεδομένα εγγράφων ευρετηριάζονται και πώς αποθηκεύονται.

Βήμα 1: ρύθμιση του περιβάλλοντος

Φορτώστε ένα έγγραφο που περιέχει πεδία μεταδεδομένων όπως συγγραφέας, τίτλος και προσαρμοσμένες ετικέτες.

import com.groupdocs.search.*;
import com.groupdocs.search.options.*;

String indexFolder = "YOUR_OUTPUT_DIRECTORY\\MetadataIndexingOptionsProperty";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

Βήμα 2: διαμόρφωση επιλογών μεταδεδομένων

MetadataIndexingOptions σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε μεμονωμένα πεδία μεταδεδομένων και να ορίσετε όρια μεγέθους.

Index index = new Index(indexFolder);
IndexingOptions options = new IndexingOptions();

// Customize metadata indexing options
options.getMetadataIndexingOptions().setDefaultFieldName("default");
options.getMetadataIndexingOptions().setSeparatorInCompoundName("\\");
options.getMetadataIndexingOptions().setMaxBytesToIndexField(10);
options.getMetadataIndexingOptions().setMaxIntsToIndexField(10);
options.getMetadataIndexingOptions().setMaxLongsToIndexField(10);
options.getMetadataIndexingOptions().setMaxDoublesToIndexField(10);

index.add(documentFolder, options);

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

  1. Συστήματα διαχείρισης εγγράφων – Χρησιμοποιήστε ασύγχρονη ευρετηρίαση για να διατηρήσετε το UI ανταποκρινόμενο ενώ μεγάλες παρτίδες επεξεργάζονται στο παρασκήνιο.
  2. Μηχανές αναζήτησης περιεχομένου – Εφαρμόστε ακύρωση για να αποτρέψετε τις μακροχρόνιες εργασίες από το να καταναλώνουν πόρους του διακομιστή κατά τις ώρες αιχμής.
  3. Συστήματα εισαγωγής μεγάλης κλίμακας – Εκμεταλλευτείτε την πολυνηματική επεξεργασία για να προσθέσετε έγγραφα στο ευρετήριο σε μεγάλη κλίμακα, μειώνοντας δραστικά το χρόνο επεξεργασίας.

Σκέψεις για την απόδοση

  • Διαχείριση νημάτων – Παρακολουθήστε τη χρήση CPU· πολλά νήματα μπορούν να προκαλέσουν υπερβολικό κόστος εναλλαγής περιεχομένου.
  • Αποτύπωμα μνήμης – Τα όρια μεταδεδομένων (π.χ., setMaxBytesToIndexField) διατηρούν τη χρήση μνήμης προβλέψιμη.
  • Καθαρισμός μνήμης (Garbage collection) – Χρησιμοποιήστε κατάλληλες σημαίες JVM (-Xmx, -XX:+UseG1GC) όταν ευρετηριάζετε τεράστιες συλλογές.

Συχνά προβλήματα και λύσεις

ΣύμπτωμαΠιθανή αιτίαΔιόρθωση
Η ευρετηρίαση δεν ολοκληρώνεται ποτέΗ ακύρωση έχει οριστεί πολύ χαμηλάΑυξήστε την τιμή cancelAfter ή αφαιρέστε την ακύρωση για μακροχρόνιες εργασίες
Δεν υπάρχουν ενημερώσεις κατάστασης σε ασύγχρονη λειτουργίαΟ διαχειριστής γεγονότων δεν έχει συνδεθεί σωστάΒεβαιωθείτε ότι το index.getEvents().StatusChanged.add(...) καλείται πριν από το index.add
Σφάλματα έλλειψης μνήμηςΠάρα πολλά νήματα ή υψηλά όρια μεταδεδομένωνΜειώστε το options.setThreads και τα όρια πεδίων μεταδεδομένων
Απουσία μεταδεδομένων στα αποτελέσματαΗ ευρετηρίαση μεταδεδομένων είναι απενεργοποιημένηΕπαληθεύστε ότι το options.getMetadataIndexingOptions() είναι διαμορφωμένο και δεν είναι ρυθμισμένο να αγνοεί πεδία

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

Ε: Πώς μπορώ να αποκτήσω προσωρινή άδεια για το GroupDocs.Search;
Α: Επισκεφθείτε τη σελίδα προσωρινής άδειας του GroupDocs και ακολουθήστε τις οδηγίες στην οθόνη.

Ε: Μπορώ να ακυρώσω μια λειτουργία ευρετηρίασης στη μέση;
Α: Ναι – χρησιμοποιήστε την ιδιότητα ακύρωσης με cancelAfter() ή καλέστε προγραμματιστικά το Cancellation.cancel().

Ε: Ποια είναι μερικά παραδείγματα χρήσης για ασύγχρονη ευρετηρίαση;
Α: Η ανάκτηση εγγράφων σε πραγματικό χρόνο, η επεξεργασία παρτίδων στο παρασκήνιο και οι εφαρμογές με ανταποκρινόμενο UI ωφελούνται από την ασύγχρονη ευρετηρίαση.

Ε: Είναι ασφαλές να αυξήσω τον αριθμό των νημάτων σε κοινόχρηστο διακομιστή;
Α: Αυξήστε σταδιακά και παρακολουθήστε το φορτίο CPU· σε περιβάλλοντα με έντονη κοινή χρήση, διατηρήστε τον αριθμό των νημάτων μέτριο (2‑4).

Ε: Πώς η ευρετηρίαση μεταδεδομένων επηρεάζει τη σχετικότητα της αναζήτησης;
Α: Τα σωστά ευρετηριασμένα μεταδεδομένα (συγγραφέας, ημερομηνία δημιουργίας, ετικέτες) μπορούν να έχουν μεγαλύτερο βάρος στα ερωτήματα, βελτιώνοντας την ακρίβεια των αποτελεσμάτων.

Συμπέρασμα

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


Τελευταία ενημέρωση: 2026-08-15
Δοκιμή με: GroupDocs.Search 25.4 for Java
Συγγραφέας: GroupDocs

Σχετικά σεμινάρια