กรองนามสกุลไฟล์ java ด้วย GroupDocs.Search
ในบทแนะนำเชิงลึกนี้คุณจะได้เรียนรู้วิธี filter file extensions java เมื่อทำการจัดทำดัชนีเอกสารด้วย GroupDocs.Search. เมื่อจบคู่มือคุณจะสามารถรวมเฉพาะประเภทไฟล์ที่ต้องการ, ยกเว้นรูปแบบที่ไม่ต้องการ, และรวมกฎเหล่านั้นกับตัวกรองช่วงวันที่และเส้นทางโดยใช้ตัวดำเนินการตรรกะ 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 คืออะไร?
A java file extension filter เป็นชุดกฎที่ประเมินนามสกุลของแต่ละไฟล์ก่อนที่จะส่งไปยังเครื่องมือจัดทำดัชนี. โดยระบุนามสกุลเช่น .txt, .pdf, หรือ .epub, คุณสามารถ include files by extension หรือ exclude files by extension เพื่อให้ดัชนีของคุณมีความมุ่งหมายและผลการค้นหาเกี่ยวข้อง.
ทำไมต้องใช้การกรองนามสกุลไฟล์กับ GroupDocs.Search?
การกรองนามสกุลไฟล์ช่วยปรับปรุงประสิทธิภาพการจัดทำดัชนีโดยการยกเว้นรูปแบบที่ไม่เกี่ยวข้อง, ลดความต้องการพื้นที่จัดเก็บ, และช่วยให้ปฏิบัติตามกฎระเบียบโดยป้องกันเนื้อหาที่ไม่ต้องการเข้าสู่ดัชนี. นอกจากนี้ยังทำให้การตอบสนองคำค้นเร็วขึ้นเนื่องจากเครื่องมือค้นหาประมวลผลชุดข้อมูลที่เล็กลงและมีความเกี่ยวข้องมากขึ้น.
- ประสิทธิภาพ: การข้ามไฟล์ที่ไม่ต้องการลด I/O และเร่งความเร็วการจัดทำดัชนีได้ถึง 40 % ในคลังข้อมูลขนาดใหญ่.
- การประหยัดพื้นที่จัดเก็บ: เอกสารที่เกี่ยวข้องเท่านั้นที่ถูกเก็บในดัชนี, ลดการใช้ดิสก์โดยเฉลี่ย 30 %.
- การปฏิบัติตาม: ป้องกันการจัดทำดัชนีโดยบังเอิญของไฟล์ที่เป็นความลับหรือไม่รองรับ.
- ความยืดหยุ่น: รวมกับคุณลักษณะ date range filter java เพื่อกำหนดเป้าหมายไฟล์ที่สร้างหรือแก้ไขในช่วงเวลาที่กำหนด.
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่ม, โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้:
ไลบรารีและ dependencies ที่จำเป็น
- GroupDocs.Search for Java – เวอร์ชัน 25.4 หรือใหม่กว่า (รองรับรูปแบบอินพุตกว่า 60 ประเภท).
- Java Development Kit (JDK) – เวอร์ชันที่เข้ากันได้ใดก็ได้ (8 หรือใหม่กว่า).
การตั้งค่าสภาพแวดล้อม
- Integrated Development Environment (IDE): IntelliJ IDEA, Eclipse, หรือ IDE ที่เข้ากันได้กับ Maven ใดก็ได้.
ความรู้เบื้องต้นที่จำเป็น
- พื้นฐานการเขียนโปรแกรม Java.
- คุ้นเคยกับการทำงาน I/O ของไฟล์ใน Java.
- เข้าใจ regular expressions และการจัดการวันที่‑เวลา.
การตั้งค่า 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 – ได้รับไลเซนส์ถาวรสำหรับการใช้งานในสภาพแวดล้อมจริง.
การเริ่มต้นและตั้งค่าพื้นฐาน
เมื่อเพิ่มไลบรารีแล้ว, เริ่มต้นสภาพแวดล้อมการจัดทำดัชนีของคุณ. คลาส IndexSettings เก็บตัวเลือกการกำหนดค่าทั้งหมด, รวมถึงตัวกรอง.
import com.groupdocs.search.*;
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
Index index = new Index(indexFolder);
คู่มือการใช้งาน
ต่อไปนี้เราจะเจาะลึกแต่ละประเภทของตัวกรอง, อธิบาย ทำไมจึงสำคัญ และให้คำแนะนำทีละขั้นตอนที่คุณสามารถคัดลอกไปยังโปรเจกต์ของคุณ.
การกรองนามสกุลไฟล์
กรองไฟล์ตามนามสกุลของพวกมันระหว่างการจัดทำดัชนี. เหมาะอย่างยิ่งเมื่อคุณต้องการประมวลผล e‑books (.fb2, .epub) และไฟล์ข้อความธรรมดา (.txt).
ภาพรวม
DocumentFilter.createFileExtension สร้าง whitelist ของนามสกุล.
ขั้นตอนการใช้งาน
Create filter – กำหนดนามสกุลที่คุณต้องการเก็บ.
DocumentFilter filter = DocumentFilter.createFileExtension(".fb2", ".epub", ".txt"); IndexSettings settings = new IndexSettings(); settings.setDocumentFilter(filter);Initialize index and add documents – ใช้ตัวกรองเมื่อสร้าง
IndexSettings.Index index = new Index("YOUR_OUTPUT_DIRECTORY\\FileExtensionFilter", settings); index.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรอง Logical NOT
ยกเว้นนามสกุลเฉพาะ, เช่น หน้าเว็บและ PDF, เมื่อไม่จำเป็นสำหรับสถานการณ์การค้นหาของคุณ.
ขั้นตอนการใช้งาน
Create exclusion filter – ระบุนามสกุลที่ต้องการปฏิเสธ.
DocumentFilter filterNot = DocumentFilter.createFileExtension(".htm", ".html", ".pdf"); DocumentFilter invertedFilter = DocumentFilter.createNot(filterNot);Apply to index settings – รวมตัวกรอง NOT กับกฎอื่น ๆ.
IndexSettings settingsNot = new IndexSettings(); settingsNot.setDocumentFilter(invertedFilter);Add documents – เฉพาะไฟล์ที่ผ่านตัวกรองรวมจะถูกจัดทำดัชนี.
Index indexNot = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalNotFilter", settingsNot); indexNot.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรอง Logical AND
รวมหลายเงื่อนไข—วันที่สร้าง, นามสกุล, และขนาดไฟล์—เพื่อให้ เฉพาะไฟล์ที่ตรงตามทุกเกณฑ์ ถูกจัดทำดัชนี.
ภาพรวม
DocumentFilter.createAnd รวมหลายตัวกรองเป็นกฎเดียว.
ขั้นตอนการใช้งาน
Define filters – สร้างตัวกรองแยกสำหรับแต่ละเงื่อนไข.
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);Combine filters – ใช้ตัวดำเนินการ AND เพื่อให้ต้องเป็นทุกเงื่อนไข.
DocumentFilter finalFilterAnd = DocumentFilter.createAnd(filter1, filter2, filter3); IndexSettings settingsAnd = new IndexSettings(); settingsAnd.setDocumentFilter(finalFilterAnd);Index documents – ส่งตัวกรองรวมไปยัง pipeline การจัดทำดัชนี.
Index indexAnd = new Index("YOUR_OUTPUT_DIRECTORY\\LogicalAndFilter", settingsAnd); indexAnd.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรอง Logical OR
รวมไฟล์ที่ตรงกับ เงื่อนไขใดก็ได้ ที่ระบุ—เป็นประโยชน์เมื่อคุณต้องการจับไฟล์ข้อความขนาดเล็กและไฟล์ที่ไม่ใช่ข้อความขนาดใหญ่.
ขั้นตอนการใช้งาน
Define filters – สร้างตัวกรองแยกสำหรับแต่ละเงื่อนไขทางเลือก.
DocumentFilter txtFilter = DocumentFilter.createFileExtension(".txt"); DocumentFilter notTxtFilter = DocumentFilter.createNot(txtFilter);Combine filters with logical conditions – ใช้ตัวดำเนินการ OR.
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);Finalize OR filter – แนบตัวกรองรวมไปยังการกำหนดค่าดัชนี.
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");
ตัวกรองเวลาการสร้าง
กำหนดเป้าหมายไฟล์ที่สร้างในช่วงเวลาที่กำหนด—เป็นสถานการณ์ date range filter java คลาสสิก.
ขั้นตอนการใช้งาน
Define date‑range filter – ระบุวันที่เริ่มต้นและสิ้นสุด.
DocumentFilter filter3CTime = DocumentFilter.createCreationTimeRange(Utils.createDate(2017, 1, 1), Utils.createDate(2018, 6, 15)); IndexSettings settingsCTime = new IndexSettings(); settingsCTime.setDocumentFilter(filter3CTime);Index documents – เฉพาะไฟล์ที่มีเวลาสร้างอยู่ในช่วงที่กำหนดจะถูกจัดทำดัชนี.
Index indexCTime = new Index("YOUR_OUTPUT_DIRECTORY\\CreationTimeFilters", settingsCTime); indexCTime.add("YOUR_DOCUMENT_DIRECTORY");
ตัวกรองเวลาการแก้ไข
ยกเว้นไฟล์ที่ถูกแก้ไขหลังจากวันที่ตัดขาดที่กำหนด.
ขั้นตอนการใช้งาน
Define filter – ตั้งค่า timestamp การแก้ไขสูงสุด.
DocumentFilter filter2MTime = DocumentFilter.createModificationTimeUpperBound(Utils.createDate(2018, 6, 15)); IndexSettings settingsMTime = new IndexSettings(); settingsMTime.setDocumentFilter(filter2MTime);Index documents – ไฟล์ที่ใหม่กว่าตัดขาดจะถูกละเว้น.
Index indexMTime = new Index("YOUR_OUTPUT_DIRECTORY\\ModificationTimeFilters", settingsMTime); indexMTime.add("YOUR_DOCUMENT_DIRECTORY");
การกรองเส้นทางไฟล์
จำกัดการจัดทำดัชนีให้กับไฟล์ที่อยู่ในโฟลเดอร์เฉพาะหรือที่ตรงกับรูปแบบ—เหมาะสำหรับ include files by extension ภายในโครงสร้างไดเรกทอรีที่กำหนด.
ขั้นตอนการใช้งาน
Define file‑path filter – ใช้รูปแบบ glob หรือ regex เพื่อจับคู่ไดเรกทอรี.
DocumentFilter pathFilter = DocumentFilter.createPath("*.txt", "documents/"); IndexSettings settingsPath = new IndexSettings(); settingsPath.setDocumentFilter(pathFilter);Initialize index and add documents – ใช้ตัวกรองเส้นทางร่วมกับกฎอื่น ๆ.
Index indexPath = new Index("YOUR_OUTPUT_DIRECTORY\\FilePathFilter", settingsPath); indexPath.add("YOUR_DOCUMENT_DIRECTORY");
ข้อผิดพลาดทั่วไปและเคล็ดลับ
- ห้ามผสานเส้นทางแบบ absolute และ relative ในการกำหนดค่าตัวกรองเดียวกัน – อาจทำให้เกิดการยกเว้นที่ไม่คาดคิด.
- รีเซ็ต
IndexSettingsเมื่อสลับชุดตัวกรอง; มิฉะนั้นตัวกรองก่อนหน้าจะคงอยู่. - รวมขอบเขตความยาวสูงสุดกับตัวกรองนามสกุล สำหรับคอลเลกชันขนาดใหญ่เพื่อรักษาการใช้หน่วยความจำให้ต่ำ.
- LoggingOptions ควบคุมการกำหนดค่าการบันทึกสำหรับ GroupDocs.Search.
- เปิดใช้งานการบันทึก (
LoggingOptions.setEnabled(true)) เพื่อดูเหตุผลที่ไฟล์ถูกปฏิเสธ.
คำถามที่พบบ่อย
Q: ฉันสามารถเปลี่ยนเกณฑ์ตัวกรองหลังจากสร้างดัชนีแล้วหรือไม่?
A: ใช่. สร้างดัชนีใหม่ด้วย DocumentFilter ใหม่หรือใช้การจัดทำดัชนีแบบเพิ่มส่วนโดยใช้การตั้งค่าอัปเดต.
Q: ตัวกรอง java file extension ทำงานกับไฟล์บีบอัด (เช่น ZIP) หรือไม่?
A: GroupDocs.Search สามารถจัดทำดัชนีรูปแบบไฟล์บีบอัดที่รองรับได้, แต่ตัวกรองนามสกุลจะใช้กับไฟล์บีบอัดเอง, ไม่ใช่ไฟล์ภายใน. ใช้ตัวกรองซ้อนกันสำหรับการควบคุมที่ลึกขึ้น.
Q: ฉันจะดีบักเหตุผลที่ไฟล์ใดไฟล์หนึ่งถูกยกเว้นอย่างไร?
A: เปิดการบันทึกของไลบรารี (LoggingOptions.setEnabled(true)) และตรวจสอบบันทึก – จะรายงานว่าตัวกรองใดปฏิเสธไฟล์แต่ละไฟล์.
Q: สามารถรวมตัวกรอง java file extension กับตัวกรอง regex แบบกำหนดเองได้หรือไม่?
A: แน่นอน. ห่อหุ้มตัวกรอง regex ภายใน DocumentFilter.createAnd() ร่วมกับตัวกรองนามสกุล.
Q: การเพิ่มตัวกรองหลายตัวมีผลต่อประสิทธิภาพอย่างไร?
A: แต่ละตัวกรองเพิ่มภาระเล็กน้อยระหว่างการจัดทำดัชนี, แต่การลดข้อมูลที่จัดทำดัชนีมักจะชดเชยค่าใช้จ่ายนั้น. ทดสอบด้วยตัวอย่างที่เป็นตัวแทนเพื่อหาสมดุลที่เหมาะที่สุด.
อัปเดตล่าสุด: 2026-09-06
ทดสอบด้วย: GroupDocs.Search 25.4 for Java
ผู้เขียน: GroupDocs