เชี่ยวชาญการใช้ตัวกรองส่วนขยายไฟล์ java กับ GroupDocs.Search
การจัดการคลังเอกสารที่เพิ่มขึ้นอย่างต่อเนื่องอาจทำให้รู้สึกหนักหน่วงได้อย่างรวดเร็ว โดยเฉพาะเมื่อคุณต้องทำดัชนีเฉพาะประเภทไฟล์บางประเภท ตัวกรองส่วนขยายไฟล์ java ช่วยให้คุณบอก GroupDocs.Search ว่าต้องรวมหรือยกเว้นส่วนขยายใดบ้าง ทำให้คุณควบคุมขั้นตอนการทำดัชนีได้อย่างแม่นยำ ในคู่มือนี้เราจะอธิบายวิธีตั้งค่า GroupDocs.Search สำหรับ Java และแสดงวิธีผสานการกรองส่วนขยายไฟล์กับตัวดำเนินการตรรกะ AND, OR, และ NOT รวมถึงตัวกรองช่วงวันที่และเส้นทางไฟล์
คำตอบสั้น ๆ
- java file extension filter คืออะไร? การกำหนดค่าที่บอก GroupDocs.Search ว่าส่วนขยายไฟล์ใดจะรวมหรือยกเว้นระหว่างการทำดัชนี
- ไลบรารีใดให้ฟีเจอร์นี้? GroupDocs.Search for Java
- ต้องมีลิขสิทธิ์หรือไม่? สามารถใช้รุ่นทดลองฟรีเพื่อประเมินผลได้; ต้องมีลิขสิทธิ์เต็มเพื่อใช้งานในสภาพแวดล้อมการผลิต
- สามารถผสานตัวกรองได้หรือไม่? ได้ – คุณสามารถเชื่อมต่อการกรองส่วนขยาย, วันที่, ขนาด, และเส้นทางด้วยตรรกะ AND, OR, NOT
- รองรับ Maven หรือไม่? แน่นอน – เพียงเพิ่ม dependency ของ GroupDocs.Search ลงใน
pom.xmlของคุณ
java file extension filter คืออะไร?
java file extension filter คือชุดกฎที่ประเมินส่วนขยายของแต่ละไฟล์ก่อนส่งไปยังเครื่องยนต์ทำดัชนี โดยการระบุส่วนขยายเช่น .txt, .pdf, หรือ .epub คุณสามารถ รวมไฟล์ตามส่วนขยาย หรือ ยกเว้นไฟล์ตามส่วนขยาย เพื่อให้ดัชนีของคุณโฟกัสและผลการค้นหาเป็นประโยชน์มากขึ้น
ทำไมต้องใช้การกรองส่วนขยายไฟล์กับ GroupDocs.Search?
- ประสิทธิภาพ: การข้ามไฟล์ที่ไม่ต้องการช่วยลด I/O และเร่งความเร็วการทำดัชนี
- ประหยัดพื้นที่จัดเก็บ: เก็บเฉพาะเอกสารที่เกี่ยวข้องในดัชนี ลดการใช้ดิสก์
- การปฏิบัติตามกฎ: ป้องกันการทำดัชนีไฟล์ที่เป็นความลับหรือไม่รองรับโดยบังเอิญ
- ความยืดหยุ่น: ผสานกับฟีเจอร์ date range filter java เพื่อกำหนดไฟล์ที่สร้างหรือแก้ไขในช่วงเวลาที่กำหนด
ข้อกำหนดเบื้องต้น
ก่อนเริ่มทำงาน ให้ตรวจสอบว่าคุณมีสิ่งต่อไปนี้แล้ว:
ไลบรารีและ dependency ที่จำเป็น
- GroupDocs.Search for Java: เวอร์ชัน 25.4 หรือใหม่กว่า
- Java Development Kit (JDK): เวอร์ชันที่เข้ากันได้
การตั้งค่าสภาพแวดล้อม
- Integrated Development Environment (IDE): IntelliJ IDEA, Eclipse หรือ IDE ที่รองรับ Maven ใด ๆ
ความรู้เบื้องต้นที่ต้องมี
- การเขียนโปรแกรม Java ขั้นพื้นฐาน
- ความคุ้นเคยกับการทำ I/O ของไฟล์ใน Java
- ความเข้าใจเกี่ยวกับ regular expressions และการจัดการ date‑time
การตั้งค่า GroupDocs.Search สำหรับ Java
เพื่อเริ่มใช้ GroupDocs.Search คุณต้องเพิ่มมันเป็น dependency ในโปรเจกต์ของคุณ
การกำหนดค่า Maven
เพิ่ม repository และ dependency ด้านล่างนี้ลงในไฟล์ 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
การรับลิขสิทธิ์
- Free Trial – ทดลองใช้ฟีเจอร์โดยไม่เสียค่าใช้จ่าย
- Temporary License – รับฟังก์ชันเต็มสำหรับระยะเวลาจำกัด
- Purchase – ซื้อไลเซนส์ถาวรสำหรับการใช้งานในสภาพแวดล้อมการผลิต
การเริ่มต้นและตั้งค่าเบื้องต้น
เมื่อเพิ่มไลบรารีแล้ว ให้เริ่มต้นสภาพแวดล้อมการทำดัชนีของคุณ:
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);
คู่มือการใช้งาน
ต่อไปนี้เป็นการเจาะลึกแต่ละประเภทของตัวกรอง พร้อมอธิบาย เหตุผลที่สำคัญ และให้โค้ดขั้นตอน‑โดย‑ขั้นตอนที่คุณสามารถคัดลอกไปใช้ในโปรเจกต์ได้
การกรองส่วนขยายไฟล์
กรองไฟล์ตามส่วนขยายระหว่างทำดัชนี เหมาะอย่างยิ่งเมื่อคุณต้องการประมวลผล e‑books (.fb2, .epub) และไฟล์ข้อความธรรมดา (.txt)
ภาพรวม
ใช้ DocumentFilter.createFileExtension เพื่อกำหนด whitelist ของส่วนขยาย
ขั้นตอนการทำงาน
สร้างตัวกรอง:
DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt"); IndexSettings settings = new IndexSettings(); settings.setDocumentFilter(filter);เริ่มต้น Index และเพิ่มเอกสาร:
Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings); index.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรอง Logical NOT
ยกเว้นส่วนขยายเฉพาะ เช่น หน้าเว็บและ PDF เมื่อไม่ต้องการในสถานการณ์การค้นหาของคุณ
ขั้นตอนการทำงาน
สร้างตัวกรองการยกเว้น:
DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf"); DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);นำไปใช้กับ Index Settings:
IndexSettings settingsNot = new IndexSettings(); settingsNot.setDocumentFilter(invertedFilter);เพิ่มเอกสาร:
Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot); indexNot.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรอง Logical AND
รวมเงื่อนไขหลายอย่าง – วันที่สร้าง, ส่วนขยาย, และขนาดไฟล์ – เพื่อให้ เฉพาะไฟล์ที่ตรงตามทุกเงื่อนไข เท่านั้นที่ถูกทำดัชนี
ภาพรวม
DocumentFilter.createAnd รวมตัวกรองหลายตัวเป็นกฎเดียว
ขั้นตอนการทำงาน
กำหนดตัวกรอง:
DocumentFilter filter1 = DocumentFilter.createCreationTimeRange(Utils.createDate(2015, 1, 1), Utils.createDate(2016, 1, 1)); DocumentFilter filter2 = DocumentFilter.createFileExtension(".txt"); DocumentFilter filter3 = DocumentFilter.createFileLengthUpperBound(8 * 1024 * 1024);ผสานตัวกรอง:
DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3); IndexSettings settingsAnd = new IndexSettings(); settingsAnd.setDocumentFilter(finalFilterAnd);ทำดัชนีเอกสาร:
Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd); indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรอง Logical OR
รวมไฟล์ที่ตรงกับ เงื่อนไขใดเงื่อนไขหนึ่ง – มีประโยชน์เมื่อคุณต้องการจับไฟล์ข้อความขนาดเล็กและไฟล์ที่ไม่ใช่ข้อความขนาดใหญ่พร้อมกัน
ขั้นตอนการทำงาน
กำหนดตัวกรอง:
DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt"); DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);ผสานตัวกรองด้วยเงื่อนไขตรรกะ:
DocumentFilter bound5Filter = DocumentFilter.createFileLengthUpperBound(5 * 1024 * 1024); DocumentFilter bound10Filter = DocumentFilter.createFileLengthUpperBound(10 * 1024 * 1024); DocumentFilter txtSizeFilter = DocumentFilter.createAnd(txtFilter, bound5Filter); DocumentFilter notTxtSizeFilter = DocumentFilter.createAnd(notTxtFilter, bound10Filter);สรุปตัวกรอง OR:
DocumentFilter finalFilterOr = DocumentFilter.createOr(txtSizeFilter, notTxtSizeFilter); IndexSettings settingsOr = new IndexSettings(); settingsOr.setDocumentFilter(finalFilterOr); Index indexOr = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalOrFilter", settingsOr); indexOr.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรองช่วงเวลาการสร้าง (Creation Time Filters)
กำหนดไฟล์ที่สร้างในช่วงเวลาที่ระบุ – ตัวอย่างคลาสสิกของ date range filter java
ขั้นตอนการทำงาน
กำหนดตัวกรองช่วงวันที่:
DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15)); IndexSettings settingsCTime = new IndexSettings(); settingsCTime.setDocumentFilter(filter3CTime);ทำดัชนีเอกสาร:
Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime); indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรองช่วงเวลาการแก้ไข (Modification Time Filters)
ยกเว้นไฟล์ที่ถูกแก้ไขหลังจากวันที่ตัดขาดที่กำหนด
ขั้นตอนการทำงาน
กำหนดตัวกรอง:
DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15)); IndexSettings settingsMTime = new IndexSettings(); settingsMTime.setDocumentFilter(filter2MTime);ทำดัชนีเอกสาร:
Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime); indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
การกรองเส้นทางไฟล์ (File Path Filtering)
จำกัดการทำดัชนีให้กับไฟล์ที่อยู่ในโฟลเดอร์เฉพาะหรือที่ตรงกับรูปแบบ – เหมาะสำหรับ include files by extension ภายในโครงสร้างไดเรกทอรีที่กำหนด
ขั้นตอนการทำงาน
กำหนดตัวกรองเส้นทางไฟล์:
DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/"); IndexSettings settingsPath = new IndexSettings(); settingsPath.setDocumentFilter(pathFilter);เริ่มต้น Index และเพิ่มเอกสาร:
Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath); indexPath.add("YOUR_DOCUMENT_DIRECTORY");
ข้อผิดพลาดทั่วไป & เคล็ดลับ
- ห้ามผสมเส้นทางแบบ absolute กับ relative ในการตั้งค่าตัวกรองเดียวกัน – จะทำให้ไฟล์ถูกยกเว้นโดยไม่คาดคิด
- รีเซ็ต
IndexSettingsเมื่อ สลับชุดตัวกรอง; มิฉะนั้นตัวกรองก่อนหน้าอาจคงอยู่ - ผสานขอบเขตความยาวสูงสุดกับตัวกรองส่วนขยาย สำหรับคอลเลกชันขนาดใหญ่เพื่อควบคุมการใช้หน่วยความจำให้ต่ำลง
- เปิดใช้งาน logging (
LoggingOptions.setEnabled(true)) เพื่อดูเหตุผลที่ไฟล์ถูกปฏิเสธ
คำถามที่พบบ่อย
Q: สามารถเปลี่ยนเกณฑ์การกรองหลังจากสร้างดัชนีแล้วได้หรือไม่?
A: ได้. ให้สร้างดัชนีใหม่ด้วย DocumentFilter ใหม่หรือใช้การทำดัชนีแบบ incremental พร้อมตั้งค่าอัปเดต
Q: ตัวกรองส่วนขยายไฟล์ java ทำงานกับไฟล์บีบอัด (เช่น ZIP) หรือไม่?
A: GroupDocs.Search สามารถทำดัชนีรูปแบบไฟล์บีบอัดที่รองรับได้ แต่ตัวกรองส่วนขยายจะใช้กับไฟล์บีบอัดเอง ไม่ได้ใช้กับไฟล์ภายใน ใช้ตัวกรองแบบซ้อนกันสำหรับการควบคุมระดับลึก
Q: จะดีบักเหตุผลที่ไฟล์ใดไฟล์หนึ่งถูกยกเว้นอย่างไร?
A: เปิด logging ของไลบรารี (LoggingOptions.setEnabled(true)) แล้วตรวจสอบ log – จะบอกว่า ตัวกรองใดที่ปฏิเสธไฟล์นั้น
Q: สามารถผสาน java file extension filter กับตัวกรอง regex แบบกำหนดเองได้หรือไม่?
A: แน่นอน. ใส่ตัวกรอง regex ภายใน DocumentFilter.createAnd() ร่วมกับตัวกรองส่วนขยาย
Q: การเพิ่มตัวกรองหลายตัวมีผลต่อประสิทธิภาพอย่างไร?
A: แต่ละตัวกรองเพิ่มภาระการประมวลผลเล็กน้อยระหว่างทำดัชนี แต่การลดปริมาณข้อมูลที่ทำดัชนีมักจะชดเชยค่าใช้จ่ายนั้นได้ ทดสอบกับตัวอย่างที่เป็นตัวแทนเพื่อหาจุดสมดุลที่เหมาะสม
Last Updated: 2026-02-21
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs