สร้างดัชนีการค้นหาที่กำหนดเองพร้อมการรับรู้ตัวอักษรโดยใช้ GroupDocs.Search สำหรับ Java
ในแอปพลิเคชันที่มีเอกสารจำนวนมากในยุคปัจจุบัน, การสร้างดัชนีการค้นหาที่กำหนดเอง ที่เข้าใจความละเอียดของข้อความของคุณ—เช่น เครื่องหมายขีดกลาง, เครื่องหมายขีดล่าง, หรือสัญลักษณ์เฉพาะของภาษา—เป็นสิ่งสำคัญสำหรับการดึงข้อมูลที่รวดเร็วและแม่นยำ. บทเรียนนี้จะพาคุณผ่านการกำหนดค่าการรับรู้ตัวอักษรใน GroupDocs.Search สำหรับ Java, ครอบคลุมทั้งตัวอักษรปกติ (ตัวอักษร, ตัวเลข, เครื่องหมายขีดล่าง) และตัวอักษรผสม (เช่น เครื่องหมายขีดกลาง). เมื่อเสร็จสิ้น, คุณจะสามารถปรับแต่งดัชนีให้ตรงกับความต้องการของสถานการณ์ OCR หรือการค้นหาภาพของคุณได้อย่างแม่นยำ.
คำตอบสั้น ๆ
- “สร้างดัชนีการค้นหาที่กำหนดเอง” หมายถึงอะไร? หมายถึงการกำหนดค่าดัชนีให้จัดการกับสัญลักษณ์เฉพาะเป็นตัวอักษรหรือเป็นตัวอักษรผสม, แทนที่จะละเลยมัน.
- ใช้ไลบรารีอะไร? GroupDocs.Search สำหรับ Java (เวอร์ชัน 25.4 ณ เวลาที่เขียน).
- ต้องการไลเซนส์หรือไม่? ทดลองใช้ฟรีทำงานได้สำหรับการพัฒนา; ต้องมีไลเซนส์แบบชำระเงินสำหรับการใช้งานในผลิตภัณฑ์.
- สามารถทำดัชนีทั้ง PDF และรูปภาพได้หรือไม่? ได้—GroupDocs.Search รองรับ OCR บนรูปภาพและ PDF เมื่อกำหนดค่าอย่างเหม- ต้องใช้ Maven หรือไม่? Maven เป็นวิธีที่แนะนำสำหรับการจัดการ dependencies, แต่คุณก็สามารถใช้ Gradle หรือ JAR แบบแมนนวลได้เช่นกัน.
ดัชนีการค้นหาที่กำหนดเองคืออะไร?
ดัชนีการค้นหาที่กำหนดเองช่วยให้คุณกำหนดวิธีที่เครื่องมือค้นหาแปลความหมายของตัวอักษร. โดยค่าเริ่มต้น, สัญลักษณ์หลายอย่างจะถูกละเลย, ซึ่งอาจทำให้พลาดการจับคู่สำหรับข้อมูลเช่นหมายเลขคดี (ABC-123) หรือโค้ดส่วนหนึ่ง (my_variable). การปรับพจนานุกรมอัลฟาเบตให้คุณควบคุมได้เต็มที่ว่าตัวอักษรใดจะถือเป็นข้อความที่สามารถค้นหาได้.
ทำไมต้องกำหนดค่าตัวอักษรปกติและตัวอักษรผสม?
- ตัวอักษรปกติ (ตัวอักษร, ตัวเลข, เครื่องหมายขีดล่าง) จะถูกจัดเป็นโทเคนแยก, ช่วยให้การค้นหาแบบตรงกันเต็มที่มีประสิทธิภาพมากขึ้น.
- ตัวอักษรผสม (เครื่องหมายขีดกลาง, เครื่องหมายทับ) เชื่อมคำ; การกำหนดค่าพวกมันจะป้องกันการแยกโทเคนที่ไม่ต้องการ, ซึ่งสำคัญสำหรับการอ้างอิงทางกฎหมาย, รหัสสินค้า, หรือการทำดัชนีโค้ดต้นฉบับ.
ข้อกำหนดเบื้องต้น
- JDK 8 หรือใหม่กว่าได้ถูกติดตั้ง.
- Maven สำหรับการจัดการ dependencies.
- เข้าถึงไลบรารี GroupDocs.Search สำหรับ Java (ดาวน์โหลดผ่าน Maven หรือเว็บไซต์ทางการ).
ไลบรารีและ Dependencies ที่จำเป็น
เพิ่ม repository และ dependency ลงในไฟล์ pom.xml ของคุณ (ตามตัวอย่างด้านล่าง). ส่วน 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>
คุณยังสามารถดาวน์โหลด JAR ล่าสุดจาก การปล่อย GroupDocs.Search สำหรับ Java.
การรับไลเซนส์
- Free Trial – เหมาะสำหรับการทดลองในขั้นต้น.
- Temporary License – มีประโยชน์สำหรับระยะเวลาการพัฒนานานขึ้น.
- Production License – จำเป็นสำหรับการใช้งานเชิงพาณิชย์.
รับไลเซนส์จากพอร์ทัลทางการ: GroupDocs.
การเริ่มต้นพื้นฐาน
โค้ดตัวอย่างด้านล่างแสดงวิธีการสร้างดัชนีเปล่าอย่างน้อยที่สุด. คงไว้ตามเดิม; เราจะต่อยอดจากนี้ในภายหลัง.
import com.groupdocs.search.*;
public class GroupDocsSearchSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
Index index = new Index(indexFolder);
System.out.println("GroupDocs.Search setup completed!");
}
}
การตั้งค่า GroupDocs.Search สำหรับ Java
การติดตั้งผ่าน Maven
การกำหนดค่า Maven จากส่วน ข้อกำหนดเบื้องต้น คือทั้งหมดที่คุณต้องการ. หลังจากเพิ่มแล้ว, รัน mvn clean install เพื่อดึงไบนารีที่จำเป็น.
ความต้องการการตั้งค่าสภาพแวดล้อม
- ตรวจสอบให้แน่ใจว่า โฟลเดอร์ดัชนี และ โฟลเดอร์เอกสาร มีอยู่บนดิสก์.
- ใช้เส้นทางแบบ absolute หรือกำหนดค่า IDE ของคุณให้แก้ไขเส้นทางแบบ relative อย่างถูกต้อง.
คู่มือการดำเนินการ
ด้านล่างเราจะอธิบายสองฟีเจอร์ที่แตกต่างกัน: ตัวอักษรปกติ และ ตัวอักษรผสม. แต่ละฟีเจอร์ทำตามรูปแบบเดียวกัน—กำหนดเส้นทาง, สร้างดัชนี, ตั้งค่าพจนานุกรมตัวอักษร, และสุดท้ายทำการทำดัชนีเอกสารของคุณ.
ฟีเจอร์ 1 – ตัวอักษรปกติ
ภาพรวม
ตัวอักษรปกติจะถูกจัดเป็นโทเคนอิสระ. เหมาะเมื่อคุณต้องการให้ตัวเลข, ตัวอักษร, และเครื่องหมายขีดล่างสามารถค้นหาได้ตรงตามที่ปรากฏ.
การดำเนินการแบบขั้นตอน
1️⃣ ตั้งค่าเส้นทาง
กำหนดตำแหน่งที่ดัชนีจะถูกเก็บและตำแหน่งที่เอกสารต้นฉบับของคุณอยู่.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/RegularCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
2️⃣ สร้างและกำหนดค่าดัชนี
สร้างอินสแตนซ์ของดัชนีและล้างการกำหนดค่าอัลฟาเบตที่มีอยู่ก่อนหน้า.
Index index = new Index(indexFolder);
index.getDictionaries().getAlphabet().clear();
3️⃣ กำหนดตัวอักษรปกติ
สร้างอาเรย์ของตัวอักษรที่รวมตัวเลข, ตัวอักษรละติน, และเครื่องหมายขีดล่าง.
StringBuilder sb = new StringBuilder();
for (char i = 0x0030; i <= 0x0039; i++) { // Digits
sb.append(i);
}
for (char i = 0x0041; i <= 0x005A; i++) { // Latin capital letters
sb.append(i);
}
sb.append(0x005F); // Underscore
for (char i = 0x0061; i <= 0x007A; i++) { // Latin small letters
sb.append(i);
}
// Convert to character array and set as alphabet range
char[] characters = new char[sb.length()];
sb.getChars(0, sb.length(), characters, 0);
index.getDictionaries().getAlphabet().setRange(characters, CharacterType.Letter);
4️⃣ ทำดัชนีเอกสาร
เพิ่มไฟล์ทั้งหมดจากโฟลเดอร์ต้นฉบับเข้าสู่ดัชนีที่กำหนดค่าใหม่.
index.add(documentFolder);
ฟีเจอร์ 2 – ตัวอักษรผสม
ภาพรวม
ตัวอักษรผสม (เช่น เครื่องหมายขีดกลาง) มักเชื่อมคำสองคำ. การทำเครื่องหมายเป็น ผสม จะบอกเครื่องมือให้รักษาโทเคนรอบข้างไว้ด้วยกันระหว่างการทำดัชนี.
การดำเนินการแบบขั้นตอน
1️⃣ ตั้งค่าเส้นทาง
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterTypes/BlendedCharacters";
String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
2️⃣ สร้างและกำหนดค่าดัชนี
Index index = new Index(indexFolder);
3️⃣ กำหนดตัวอักษรผสม
ที่นี่เราบอกพจนานุกรมว่าเครื่องหมายขีดกลางควรถือเป็นตัวอักษรผสม.
index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
4️⃣ ทำดัชนีเอกสาร
index.add(documentFolder);
การประยุกต์ใช้งานจริง
กรณีใช้งาน 1 – การจัดการเอกสารทางกฎหมาย
ไฟล์กฎหมายมักมีหมายเลขคดีเช่น 2023-AB-456. ด้วยการกำหนดค่าเครื่องหมายขีดล่างและขีดกลาง, การค้นหาจะคืนผลลัพธ์ที่ตรงกันโดยไม่แยกตัวระบุออกเป็นส่วน ๆ.
กรณีใช้งาน 2 – ที่เก็บโค้ดต้นฉบับ
นักพัฒนาต้องการค้นส่วนของโค้ดที่เครื่องหมายขีดล่าง (my_variable) และเครื่องหมายขีดกลาง (my-function) มีความหมาย. การรับรู้ตัวอักษรที่กำหนดเองทำให้เครื่องมือค้นหาเคารพสัญลักษณ์เหล่านี้.
กรณีใช้งาน 3 – ชุดข้อมูลหลายภาษา
เมื่อทำงานกับภาษาที่ใช้อักษรเพิ่มเติม, คุณสามารถขยายชุดตัวอักษรปกติให้รวมช่วง Unicode เหล่านั้น, เพื่อรับประกันผลการค้นหาที่แม่นยำข้ามภาษา.
พิจารณาด้านประสิทธิภาพ
- การจัดการทรัพยากร – ตรวจสอบการใช้ heap; ดัชนีขนาดใหญ่จะได้ประโยชน์จากการคอมมิตแบบเพิ่มส่วน.
- Garbage Collection – ปล่อยอ็อบเจกต์
Indexเมื่อเสร็จเพื่อให้ JVM สามารถคืนหน่วยความจำ. - การปรับแต่งดัชนี – เรียก
index.optimize()อย่างสม่ำเสมอ (หากมี) เพื่อบีบอัดดัชนีและเพิ่มความเร็วของการค้นหา.
สรุป
คุณได้เรียนรู้วิธี สร้างดัชนีการค้นหาที่กำหนดเอง ที่แยกแยะระหว่างตัวอักษรปกติและตัวอักษรผสมโดยใช้ GroupDocs.Search สำหรับ Java. การควบคุมระดับละเอียดนี้ช่วยให้คุณสร้างโซลูชันการค้นหาที่รับรู้ OCR, มีประสิทธิภาพสูง, และปรับให้เหมาะกับสภาพแวดล้อมทางกฎหมาย, การพัฒนา, หรือหลายภาษาได้อย่างเต็มที่.
ขั้นตอนต่อไป
- ทดลองเพิ่มช่วง Unicode สำหรับอักษรที่ไม่ใช่ละติน.
- ผสานการกำหนดค่าตัวอักษรกับฟีเจอร์อื่นของ GroupDocs.Search เช่น stemming หรือ synonyms.
- รวมดัชนีเข้ากับ REST API เพื่อเปิดเผยความสามารถการค้นหาให้กับแอปพลิเคชันฝั่งหน้า.
คำถามที่พบบ่อย
Q: วัตถุประสงค์ของ CharacterType.Letter คืออะไร?
A: มันบอกดัชนีให้ถืออักขระที่ระบุเป็นตัวอักษรปกติ, ดังนั้นจะถูกแยกเป็นโทเคนแยกกันระหว่างการทำดัชนี.
Q: ฉันสามารถผสมตัวอักษรปกติและตัวอักษรผสมในดัชนีเดียวกันได้หรือไม่?
A: ได้—เพียงเรียก setRange สำหรับแต่ละประเภท; พจนานุกรมจะจัดการการกำหนดค่าทั้งสองพร้อมกัน.
Q: ต้องสร้างดัชนีใหม่หลังจากเปลี่ยนแปลงอัลฟาเบตหรือไม่?
A: จำเป็นอย่างยิ่ง. การเปลี่ยนแปลงพจนานุกรมตัวอักษรส่งผลต่อการแยกโทเคน, ดังนั้นคุณต้องทำดัชนีเอกสารใหม่เพื่อให้กฎใหม่มีผล.
Q: มีขีดจำกัดจำนวนตัวอักษรที่กำหนดเองได้หรือไม่?
A: ไลบรารีรองรับช่วง Unicode ทั้งหมด; ประสิทธิภาพอาจลดลงหากเพิ่มชุดตัวอักษรขนาดใหญ่มาก, ดังนั้นควรจำกัดไว้ที่ตัวอักษรที่คุณต้องการจริง ๆ.
Q: การกำหนดค่านี้ส่งผลต่อความแม่นยำของ OCR อย่างไร?
A: โดยการทำให้ชุดตัวอักษรของดัชนีสอดคล้องกับผลลัพธ์ของเครื่องมือ OCR, คุณจะลดจำนวน false negatives และเพิ่มความเกี่ยวข้องของผลการค้นหาโดยรวม.
อัปเดตล่าสุด: 2026-01-11
ทดสอบกับ: GroupDocs.Search 25.4 สำหรับ Java
ผู้เขียน: GroupDocs