Πώς να Διαμορφώσετε το GroupDocs Search Network για Java
Στο σημερινό ταχύτατα εξελισσόμενο ψηφιακό περιβάλλον, οι δεξιότητες configure groupdocs search network είναι απαραίτητες για κάθε οργανισμό που χρειάζεται να αναζητά μέσα σε εκατομμύρια έγγραφα γρήγορα και αξιόπιστα. Ένα καλά διαμορφωμένο δίκτυο αναζήτησης διανέμει τις εργασίες ευρετηρίασης και ερωτημάτων σε πολλαπλούς κόμβους JVM, διατηρεί τους χρόνους απόκρισης χαμηλούς και εγγυάται υψηλή διαθεσιμότητα. Αυτό το σεμινάριο σας καθοδηγεί βήμα προς βήμα— από τη ρύθμιση του Maven και την ενεργοποίηση της άδειας μέχρι την ανάπτυξη κόμβων, την εγγραφή σε συμβάντα, την ευρετηρίαση εγγράφων και ακόμη την αναζήτηση με βάση εικόνες— ώστε να δημιουργήσετε ένα έτοιμο για παραγωγή δίκτυο GroupDocs.Search σε Java.
Γρήγορες Απαντήσεις
- Ποιος είναι ο κύριος σκοπός ενός δικτύου αναζήτησης; Για τη διανομή της φόρτωσης ευρετηρίασης και ερωτημάτων σε πολλαπλούς κόμβους για καλύτερη κλιμακωσιμότητα και αξιοπιστία.
- Ποια θύρα χρησιμοποιεί το GroupDocs.Search εξ ορισμού; Η παράδειγμα χρησιμοποιεί τη θύρα 49120, αλλά μπορείτε να επιλέξετε οποιαδήποτε ελεύθερη θύρα.
- Μπορώ να προσθέσω ή να αφαιρέσω κόμβους χωρίς χρόνο διακοπής; Ναι—οι κόμβοι μπορούν να αναπτυχθούν ή να αφαιρεθούν δυναμικά.
- Χρειάζομαι άδεια για παραγωγή; Απαιτείται πλήρης άδεια για χρήση σε παραγωγή· διατίθενται δοκιμαστικές άδειες για αξιολόγηση.
- Υποστηρίζεται η αναζήτηση εικόνων έτοιμη προς χρήση; Ναι—το GroupDocs.Search παρέχει ενσωματωμένη σύγκριση hash εικόνας.
Τι είναι ένα Δίκτυο Αναζήτησης;
Ένα SearchNetworkNode είναι ένας μεμονωμένος κόμβος στο σύμπλεγμα που φιλοξενεί ένα αντίγραφο του κοινόχρηστου ευρετηρίου και επεξεργάζεται αιτήματα αναζήτησης. Ένα search network είναι μια συλλογή διασυνδεδεμένων SearchNetworkNode αντικειμένων που μοιράζονται πληροφορίες ευρετηρίασης και ανταποκρίνονται σε ερωτήματα συνεργατικά. Αυτή η αρχιτεκτονική σας επιτρέπει να διαχειρίζεστε τεράστιες συλλογές εγγράφων διατηρώντας χαμηλούς χρόνους απόκρισης και παρέχει αυτόματη εναλλακτική λειτουργία εάν ένας κόμβος βγει εκτός σύνδεσης.
Γιατί να Χρησιμοποιήσετε το GroupDocs.Search για Java;
Φορτώστε την εφαρμογή Java με μια μηχανή αναζήτησης που μπορεί να configure groupdocs search network σε λίγα λεπτά, να κλιμακώνεται οριζόντια και να υποστηρίζει πάνω από 30 τύπους αρχείων—συμπεριλαμβανομένων PDF, DOCX, XLSX, PPTX και κοινών τύπων εικόνων. Τα benchmarks δείχνουν ότι ένα σύμπλεγμα τριών κόμβων μπορεί να ευρετηριάσει 500.000 έγγραφα σε λιγότερο από 30 λεπτά σε τυπικό εξοπλισμό διακομιστή, ενώ η καθυστέρηση ερωτημάτων παραμένει κάτω από 200 ms ακόμη και υπό βαριά ταυτόχρονη φόρτωση.
Προαπαιτούμενα
- JDK 8+ εγκατεστημένο σε κάθε μηχάνημα που θα εκτελεί έναν κόμβο.
- Ένα IDE όπως το IntelliJ IDEA ή το Eclipse για εύκολη διαχείριση έργου.
- Maven για την επίλυση εξαρτήσεων.
- Βασικές γνώσεις δικτύωσης Java (θύρες TCP, τείχη προστασίας) και εννοιών πολυνηματισμού.
Απαιτούμενες Βιβλιοθήκες και Εξαρτήσεις
Προσθέστε το αποθετήριο 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>
Εναλλακτικά, κατεβάστε την πιο πρόσφατη έκδοση από GroupDocs.Search for Java releases.
Ρύθμιση του GroupDocs.Search για Java
Εγκατάσταση μέσω Maven
Το παραπάνω απόσπασμα Maven φέρνει τη βιβλιοθήκη στο έργο σας αυτόματα.
Απόκτηση Άδειας
- Free Trial – εξερευνήστε τις βασικές λειτουργίες χωρίς πιστωτική κάρτα.
- Temporary License – παρατεταμένη δοκιμαστική περίοδος για εσωτερικά πιλοτικά.
- Full License – έτοιμη για παραγωγή, απεριόριστη χρήση και προτεραιότητα υποστήριξης.
Βασική Αρχικοποίηση και Ρύθμιση
Η κλάση SearchNetworkDeployment συντονίζει τη δημιουργία και διαχείριση του συγκροτήματος αναζήτησης, διαχειριζόμενη τους κύκλους ζωής των κόμβων και τους κοινόχρηστους πόρους. Πριν μπορέσετε να αλληλεπιδράσετε με οποιονδήποτε κόμβο, πρέπει να δημιουργήσετε ένα αντικείμενο SearchNetworkDeployment και να το κατευθύνετε σε έναν κοινόχρηστο φάκελο ευρετηρίου. Το παρακάτω μπλοκ κώδικα (διατηρημένο από το αρχικό σεμινάριο) δείχνει το ελάχιστο bootstrap:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Create an instance of Index with the path to store index data.
String indexPath = "path/to/index";
Index index = new Index(indexPath);
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Οδηγός Υλοποίησης
Τώρα θα εμβαθύνουμε σε κάθε βασική εργασία, χρησιμοποιώντας σαφείς, βήμα‑βήμα εξηγήσεις που προηγούνται των αρχικών κωδικών placeholders.
Πώς να Αναπτύξετε Κόμβους σε ένα Δίκτυο Αναζήτησης
Η ανάπτυξη πολλαπλών κόμβων διανέμει το φορτίο εργασίας και βελτιώνει την ανθεκτικότητα σε σφάλματα. Ένας SearchNetworkNode αντιπροσωπεύει μια μεμονωμένη παρουσία JVM που συμμετέχει στο σύμπλεγμα αναζήτησης, διαχειριζόμενος αιτήματα ευρετηρίασης και ερωτημάτων. Εκκινώντας αρκετούς κόμβους σε διαδοχικές θύρες δημιουργείτε ένα ανθεκτικό δίκτυο όπου κάθε κόμβος μπορεί να εξυπηρετήσει κλήσεις πελατών και να μοιραστεί το κοινόχρηστο ευρετήριο.
public class SearchNetworkDeployment {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Change if necessary.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
System.out.println("Deployed " + nodes.length + " search network nodes.");
}
}
Πώς να Εγγραφείτε σε Συμβάντα
Η εγγραφή σε συμβάντα σας παρέχει ζωντανή εικόνα της υγείας των κόμβων, της προόδου ευρετηρίασης και των σφαλμάτων. Η κλάση SearchNetworkEvents παρέχει ένα σύνολο callbacks που ενεργοποιούνται για σημαντικές ενέργειες όπως η ολοκλήρωση ευρετηρίασης, αποτυχίες κόμβων ή προσαρμοσμένες ειδοποιήσεις. Η καταγραφή ακροατών στους κύριους ή εργατικούς κόμβους επιτρέπει παρακολούθηση σε πραγματικό χρόνο και αυτοματοποιημένες αντιδράσεις για ομαλή λειτουργία του δικτύου.
public class NodeEventSubscription {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Adjust if needed.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkEvents.subscribe(nodes[0]);
System.out.println("Subscribed to events for the master node.");
}
}
Πώς να Ευρετηριάσετε Έγγραφα
Η αποδοτική ευρετηρίαση είναι η ραχοκοκαλιά των γρήγορων αποτελεσμάτων αναζήτησης. Όταν προσθέτετε καταλόγους στον κύριο κόμβο, η μηχανή σαρώει κάθε αρχείο, εξάγει το περιεχόμενο που μπορεί να αναζητηθεί και το αποθηκεύει στη δομή του κοινόχρηστου ευρετηρίου. Αυτή η διαδικασία μπορεί να εκτελείται σταδιακά, ενημερώνοντας μόνο τα αλλαγμένα αρχεία, μειώνοντας το φορτίο I/O και διασφαλίζοντας ότι τα ερωτήματα αντικατοπτρίζουν πάντα τις πιο πρόσφατες εκδόσεις των εγγράφων.
public class DocumentIndexing {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Change if there is a conflict.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
System.out.println("Added directories to master node's index.");
}
}
Πώς να Εκτελέσετε Αναζήτηση Εικόνας
Το GroupDocs.Search υποστηρίζει σύγκριση hash εικόνας, επιτρέποντάς σας να εντοπίσετε οπτικά παρόμοια περιουσιακά στοιχεία. Η κλάση SearchImage περιλαμβάνει ένα αρχείο εικόνας και υπολογίζει ένα αντιληπτικό hash που μπορεί να ταιριάζει με τα hashes που αποθηκεύονται στο ευρετήριο. Καθορίζοντας τη μέγιστη διαφορά hash ελέγχετε την ανοχή οπτικής ομοιότητας, επιτρέποντας αξιόπιστη ανίχνευση διπλότυπων ή σχετικών εικόνων σε όλο το αποθετήριο.
public class ImageSearch {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY";
int basePort = 49120; // Modify if needed.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");
imageSearch(nodes[0], searchImage, 8);
}
}
Πώς να Διαμορφώσετε τις Θύρες Δικτύου
Εάν το περιβάλλον σας χρησιμοποιεί ήδη τη θύρα 49120, μπορείτε να την αλλάξετε σε οποιαδήποτε ελεύθερη θύρα TCP. Η παράμετρος basePort καθορίζει τον αρχικό αριθμό θύρας για το σύμπλεγμα, και κάθε επόμενο κόμβο αυξάνει αυτήν την τιμή αυτόματα. Βεβαιωθείτε ότι η επιλεγμένη θύρα είναι ανοιχτή στο τείχος προστασίας, δεν καταλαμβάνεται από άλλες υπηρεσίες και είναι σταθερά ρυθμισμένη σε όλους τους κόμβους για αδιάκοπη επικοινωνία.
int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);
Συχνά Προβλήματα & Αντιμετώπιση
| Συμπτωμα | Πιθανή Αιτία | Διόρθωση |
|---|---|---|
| Οι κόμβοι δεν ξεκινούν | Σύγκρουση θύρας | Επιλέξτε διαφορετικό basePort και ενημερώστε τους κανόνες τείχους προστασίας. |
| Η ευρετηρίαση είναι αργή | Ανεπαρκής εύρος ζώνης I/O | Χρησιμοποιήστε αποθήκευση SSD και ενεργοποιήστε τη σταδιακή ευρετηρίαση. |
| Η εγγραφή σε συμβάντα δεν ενεργοποιείται | Έλλειψη καταχώρησης χειριστή συμβάντος | Βεβαιωθείτε ότι το SearchNetworkEvents.subscribe(node) καλείται πριν ξεκινήσει οποιαδήποτε ευρετηρίαση. |
| Η αναζήτηση εικόνας δεν επιστρέφει αποτελέσματα | Η διαφορά hash είναι πολύ μικρή | Αυξήστε την επιτρεπόμενη διαφορά hash (π.χ., από 4 σε 8). |
Συχνές Ερωτήσεις
Q: Πώς μπορώ να βελτιστοποιήσω την απόδοση ευρετηρίασης σε ένα δίκτυο GroupDocs.Search;
A: Χρησιμοποιήστε σταδιακή ευρετηρίαση, αποθηκεύστε το ευρετήριο σε γρήγορα SSDs και διαθέστε επαρκή μνήμη heap για το JVM.
Q: Μπορώ να προσθέσω ή να αφαιρέσω κόμβους χωρίς επανεκκίνηση ολόκληρου του δικτύου αναζήτησης;
A: Ναι—οι κόμβοι μπορούν να αναπτυχθούν ή να αφαιρεθούν δυναμικά. Μετά την προσθήκη ενός κόμβου, καλέστε ξανά το SearchNetworkDeployment.deploy για να ανανεώσετε την προβολή του συμπλέγματος.
Q: Πώς η εγγραφή σε συμβάντα βελτιώνει τη διαχείριση του δικτύου;
A: Τα εγγεγραμμένα συμβάντα παρέχουν ειδοποιήσεις σε πραγματικό χρόνο για αλλαγές κατάστασης κόμβων, πρόοδο ευρετηρίασης και σφάλματα, επιτρέποντας προληπτική αντιμετώπιση προβλημάτων.
Q: Είναι δυνατόν να αναζητήσετε διαφορετικούς τύπους εγγράφων ταυτόχρονα;
A: Απόλυτα. Το GroupDocs.Search υποστηρίζει PDFs, Word, Excel, PowerPoint, εικόνες και πολλούς άλλους τύπους σε ένα μόνο ερώτημα.
Q: Πόσο ασφαλή είναι τα δεδομένα σε ένα δίκτυο GroupDocs.Search;
A: Η ασφάλεια εξαρτάται από την υποδομή σας. Εφαρμόστε SSL/TLS για την επικοινωνία μεταξύ κόμβων, περιορίστε την πρόσβαση στο δίκτυο και ακολουθήστε τις βέλτιστες πρακτικές προστασίας δεδομένων.
Τελευταία Ενημέρωση: 2026-06-27
Δοκιμάστηκε Με: GroupDocs.Search 25.4 for Java
Συγγραφέας: GroupDocs