กำหนดค่า GroupDocs.Search Network ใน Java - Boost Search
แอปพลิเคชันที่อุดมด้วยข้อมูลในปัจจุบัน กำหนดค่าเครือข่ายการค้นหา groupdocs เป็นขั้นตอนสำคัญในการให้ผลลัพธ์ที่เร็วและนำไปสู่ประสิทธิภาพในเอกสารขนาดใหญ่สำหรับสร้างระบบแบบทั้งหมดหรือขยายความเข้มข้นของพลังงานแล้วนั้น GroupDocs.Search network มอบสเกลองค์กรที่เพิ่มคำร้องให้และรักษาความสดใหม่ให้ต่ำในซีรีย์นี้ตรวจสอบและปรับจูน GroupDocs.Search network ด้วย Java เคล็ดลับเพิ่มเติมคำพ้องลงไปที่ดัชนีและการจัดการระบบใน
คำตอบด่วน
- ประโยชน์หลักของการกำหนดค่าเครือข่าย GroupDocs.Search คืออะไรช่วยให้สามารถจัดทำดัชนีและการสืบค้นแบบกระจาย ปรับปรุงประสิทธิภาพและความสามารถในการปรับขนาด
- ฉันจำเป็นต้องมีใบอนุญาตเพื่อเรียกใช้ตัวอย่างหรือไม่การทดลองใช้ฟรีใช้งานได้เพื่อการพัฒนา ต้องมีใบอนุญาตเชิงพาณิชย์สำหรับการผลิต
- สามารถเพิ่มคำพ้องความหมายโดยไม่ต้องสร้างดัชนีใหม่ได้หรือไม่ใช่—ใช้พจนานุกรมคำพ้องความหมายในขณะรันไทม์เพื่อ เพิ่มคำพ้องความหมายในดัชนี
- ฉันสามารถปรับใช้โหนดได้กี่โหนด? คุณสามารถปรับใช้โหนดได้มากเท่าที่โครงสร้างพื้นฐานของคุณอนุญาต โดยแต่ละโหนดจะทำงานบนพอร์ตของตัวเอง
การกำหนดค่าเครือข่าย GroupDocs.Search คืออะไร?
การกำหนดค่าเครือข่าย GroupDocs.Search หมายถึงการกำหนดโครงสร้างโฟลเดอร์ พอร์ต และการตั้งค่าโหนดที่ช่วยให้ JVM หลายอินสแตนซ์ทำงานร่วมกันในการจัดทำดัชนีและการค้นหา การตั้งค่านี้จะสร้างโหนดหลักที่ประสานงานกับโหนดรอง (ชาร์ด) และรับประกันว่าการค้นหาจะถูกดำเนินการทั่วทั้งชุดข้อมูล
เหตุใดจึงต้องกำหนดค่าเครือข่าย GroupDocs.Search?
- ความสามารถในการขยายขนาด – กระจายภาระการจัดทำดัชนีไปยังเครื่องหลายเครื่อง
- ความน่าเชื่อถือ – สามารถเพิ่มหรือลบโหนดได้โดยไม่ต้องหยุดการทำงาน
- ความเกี่ยวข้องของการค้นหา – เพิ่มคำพ้องความหมายลงในดัชนีเพื่อผลลัพธ์ที่สมบูรณ์ยิ่งขึ้น
- ประสิทธิภาพ – การดำเนินการค้นหาแบบขนานช่วยลดเวลาตอบสนอง
ข้อกำหนดเบื้องต้น
- Java Development Kit (JDK) เวอร์ชัน 8 หรือใหม่กว่า
- Maven สำหรับสร้างโปรเจ็กต์
- ความคุ้นเคยพื้นฐานกับไวยากรณ์ของ Java
- การเข้าถึงไลบรารี GroupDocs.Search for Java (ดาวน์โหลดผ่าน Maven หรือหน้าดาวน์โหลดอย่างเป็นทางการ)
การตั้งค่า GroupDocs.Search for Java
เพิ่ม repository และ dependency ลงในไฟล์ pom.xml ของ Maven:
<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 สำหรับรุ่น Java
การขอรับใบอนุญาต
- ทดลองใช้ฟรี – สำรวจคุณสมบัติหลักได้โดยไม่มีค่าใช้จ่าย
- ใบอนุญาตชั่วคราว – ปลดล็อกความสามารถเต็มรูปแบบสำหรับการทดสอบระยะสั้น
- ใบอนุญาตเชิงพาณิชย์ – จำเป็นสำหรับการใช้งานจริง
การเริ่มต้นและการตั้งค่าพื้นฐาน
สร้างคลาส Java อย่างง่ายเพื่อตรวจสอบว่าไลบรารีโหลดได้อย่างถูกต้อง:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index
Index index = new Index("YOUR_INDEX_DIRECTORY");
System.out.println("GroupDocs.Search is ready to use!");
}
}
คู่มือทีละขั้นตอนในการกำหนดค่าเครือข่าย GroupDocs.Search
1. การกำหนดค่าเครือข่ายการค้นหา
กำหนดโฟลเดอร์เอกสารหลักและพอร์ตเริ่มต้นสำหรับการสื่อสารของโหนด
import com.groupdocs.search.dictionaries.*;
import com.groupdocs.search.scaling.configuring.*;
public class ConfigureSearchNetwork {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/ManagingDictionaries/";
int basePort = 49128;
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
// Configuration details and setup logic
}
}
- basePath – ตำแหน่งที่เก็บพจนานุกรม (เช่น ไฟล์คำพ้องความหมาย)
- basePort – พอร์ตแรก โหนดถัดไปจะเพิ่มค่าจากค่านี้
2. การติดตั้งโหนดเครือข่ายการค้นหา
สร้างโหนดผู้ปฏิบัติงานหลายโหนดที่มีการกำหนดค่าเดียวกัน
import com.groupdocs.search.scaling.*;
public class DeploySearchNetworkNodes {
public static void run() {
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/ManagingDictionaries/";
int basePort = 49128;
Configuration configuration = new Configuration();
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
// Node deployment logic
}
}
แต่ละโหนดทำงานบนพอร์ตของตัวเอง (basePort+index) และเก็บส่วนหนึ่งของดัชนีโดยรวมไว้
3. การสมัครรับเหตุการณ์ของโหนด
ตรวจสอบสถานะสุขภาพ ความคืบหน้าในการจัดทำดัชนี และสภาวะข้อผิดพลาดโดยการแนบตัวรับฟังเหตุการณ์เข้ากับโหนดหลัก
import com.groupdocs.search.scaling.*;
public class SubscribeToNodeEvents {
public static void run() {
SearchNetworkNode masterNode = new SearchNetworkNode();
SearchNetworkNodeEvents.subscribe(masterNode);
// Event subscription logic
}
}
การเรียกกลับเหตุการณ์ช่วยให้คุณตอบสนองต่อการเริ่มต้น/หยุดโหนด การเสร็จสิ้นการจัดทำดัชนี และความล้มเหลวที่ไม่คาดคิด
4. การเพิ่มคำพ้องความหมายลงในตัวจัดทำดัชนีของโหนด
เพิ่มความเกี่ยวข้องโดย เพิ่มคำพ้องความหมายลงในดัชนี ในระหว่างการทำงาน
import com.groupdocs.search.dictionaries.*;
import com.groupdocs.search.scaling.*;
public class AddSynonyms {
public static void run(SearchNetworkNode node) {
String[] group = { "efficitur", "tristique", "venenatis" };
boolean clearBeforeAdding = true;
Indexer indexer = node.getIndexer();
int[] indices = node.getShardIndices();
SynonymDictionary dictionary = indexer.getSynonymDictionary(indices[0]);
if (clearBeforeAdding) {
dictionary.clear();
}
dictionary.addRange(new String[][] { group });
indexer.setDictionary(dictionary);
// Synonym addition logic
}
}
- group – อาร์เรย์ของคำที่ควรได้รับการพิจารณาว่าเทียบเท่ากัน
- clearBeforeAdding – ตั้งค่าเป็น
trueหากคุณต้องการแทนที่รายการที่มีอยู่
5. การเพิ่มไดเร็กทอรีสำหรับการจัดทำดัชนี
บอกโหนดหลักว่าโฟลเดอร์ใดมีเอกสารที่คุณต้องการให้ค้นหาได้
import com.groupdocs.search.scaling.*;
import com.groupdocs.search.examples.Utils;
public class AddDirectoriesForIndexing {
public static void run(SearchNetworkNode masterNode) {
String documentsPath = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath";
IndexingDocuments.addDirectories(masterNode, documentsPath);
// Directory addition logic
}
}
วิธีการนี้จะสแกนไดเร็กทอรีแบบเรียกซ้ำและกระจายไฟล์ไปยังชาร์ดต่างๆ
6. การค้นหาข้อความในเครือข่าย
ดำเนินการค้นหาในทุกโหนด โดยอาจบังคับให้ค้นหาแบบตรงกันทุกประการ
import com.groupdocs.search.scaling.*;
public class PerformTextSearch {
public static void run(SearchNetworkNode masterNode) {
String query = "tristique";
boolean exactMatchOnly = false;
TextSearchInNetwork.searchAll(masterNode, query, exactMatchOnly);
exactMatchOnly = true;
TextSearchInNetwork.searchAll(masterNode, query, exactMatchOnly);
// Search execution logic
}
}
เปลี่ยน exactMatchOnly เป็น true เมื่อคุณต้องการการค้นหาแบบตรงตัวโดยไม่ตัดคำลงท้าย
7. การปิดโหนดเครือข่าย
ปล่อยทรัพยากรอย่างนุ่มนวลเมื่อการประมวลผลเสร็จสิ้น
import com.groupdocs.search.scaling.*;
public class CloseNetworkNodes {
public static void run(SearchNetworkNode[] nodes) {
for (SearchNetworkNode node : nodes) {
node.close();
// Node closure logic
}
}
}
การปิดระบบอย่างถูกต้องจะช่วยป้องกันการรั่วไหลของหน่วยความจำและรักษาสภาพการทำงานของ JVM ให้สมบูรณ์
การประยุกต์ใช้งานจริง
| สถานการณ์ | เครือข่ายช่วยได้อย่างไร |
|———-|———————–|
| การค้นหาระดับองค์กร | กระจายการจัดทำดัชนีไปยังเซิร์ฟเวอร์ศูนย์ข้อมูลสำหรับคลังข้อมูลขนาดเพตาไบต์ | | การจัดการเอกสาร | เพิ่มคำพ้องความหมายลงในดัชนีเพื่อให้ผู้ใช้สามารถค้นหาเอกสารได้แม้จะมีคำศัพท์ที่หลากหลาย | | แคตตาล็อกอีคอมเมิร์ซ | ปรับใช้โหนดเฉพาะภูมิภาคเพื่อให้บริการการค้นหาสินค้าในพื้นที่ได้อย่างรวดเร็ว | | การจัดการเนื้อหา | ทำให้เนื้อหาสามารถค้นหาได้ในขณะที่บรรณาธิการเพิ่มไฟล์ใหม่ลงในไดเร็กทอรีเฉพาะ |
ปัญหาและวิธีแก้ไขทั่วไป
ความขัดแย้งของพอร์ต – ตรวจสอบให้แน่ใจว่าพอร์ตของแต่ละโหนด (basePort+index) ว่าง ปรับ
basePortหากจำเป็นไม่ได้ใช้คำพ้องความหมาย – ตรวจสอบว่าคุณเรียกใช้
indexer.setDictionary(dictionary)หลังจากเพิ่มคำศัพท์แล้ว - โหนดไม่ตอบสนอง – สมัครรับเหตุการณ์ ตรวจสอบการเรียกกลับNodeFailedเพื่อวินิจฉัยปัญหาเครือข่ายหน่วยความจำรั่วไหลเมื่อปิด – เรียกใช้
node.close()ทุกครั้งสำหรับทุกโหนดที่ใช้งาน
คำถามที่พบบ่อย
ถาม: การใช้งานหลายโหนดช่วยปรับปรุงประสิทธิภาพการค้นหาได้อย่างไร? ตอบ: แต่ละโหนดจะจัดทำดัชนีข้อมูลส่วนหนึ่ง ทำให้สามารถประมวลผลแบบขนานและลดความหน่วงของคิวรี เนื่องจากมีการแบ่งงานกัน
ถาม: ฉันสามารถเพิ่มคำพ้องความหมายโดยไม่ต้องจัดทำดัชนีเอกสารที่มีอยู่ใหม่ได้หรือไม่? ตอบ: ได้ คุณสามารถ เพิ่มคำพ้องความหมายลงในดัชนี ได้ในขณะทำงานผ่านพจนานุกรมคำพ้องความหมาย การเปลี่ยนแปลงจะมีผลทันทีสำหรับคิวรีใหม่
ถาม: การสมัครรับเหตุการณ์ของโหนดเป็นสิ่งจำเป็นหรือไม่? ตอบ: แม้ว่าจะไม่จำเป็นสำหรับการทำงานพื้นฐาน แต่การสมัครรับเหตุการณ์จะช่วยให้คุณมองเห็นสถานะของโหนดและช่วยให้คุณตอบสนองต่อความล้มเหลวได้อย่างรวดเร็ว
ถาม: แนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการทรัพยากรโหนดคืออะไร? ตอบ: ปิดโหนดที่ไม่ได้ใช้งานเป็นประจำ ตรวจสอบการใช้งานหน่วยความจำ JVM และรีไซเคิลโหนดในช่วงเวลาที่ไม่ใช่ช่วงเวลาที่มีการใช้งานสูงสุด เพื่อให้การใช้ทรัพยากรอยู่ในระดับที่เหมาะสมที่สุด
ถาม: GroupDocs.Search รองรับรูปแบบที่ไม่ใช่ข้อความ เช่น PDF หรือรูปภาพหรือไม่? ตอบ: ได้อย่างแน่นอน ไลบรารีนี้สามารถดึงข้อความจาก PDF ไฟล์ Office และยังทำการ OCR บนรูปภาพ ทำให้สามารถค้นหาได้ทันที
อัปเดตล่าสุด: 2026-01-16 ทดสอบกับ: GroupDocs.Search 25.4 สำหรับ Java ผู้เขียน: GroupDocs