חיפוש בטקסט מלא הוא דרך לחפש טקסט/שאילתה בתוך אוסף של מסמכים. גישה זו מוצאת במהירות את כל המופעים של מונח/ביטוי והיא פועלת באמצעות אינדקסים של טקסט. במאמר זה, נלמד כיצד לחפש באופן תכנותי טקסט מלא במסמכים באמצעות Java.

חיפוש טקסט מלא

לאחר מכן, תוכל ליישם טכניקות חיפוש שונות ולבנות את פתרון החיפוש שלך עבור מסמכי עיבוד תמלילים, גיליונות אלקטרוניים, מצגות, קבצי HTML, קבצי PDF, ספרים אלקטרוניים, הודעות דואר אלקטרוני, ארכיוני ZIP ועוד רבים אחרים פורמטים של מסמכים.

הנושאים הבאים מכוסים להלן:

Java API לחיפוש טקסט מלא

GroupDocs.Search מספק חיפוש טקסט מלא ב-Java API שניתן לשלב בכל יישום ללא כל תלות של צד שלישי ותוכנה. זה מאפשר לך לחפש ברשימה גדולה של פורמטים של מסמכים. כמה מטכניקות החיפוש שניתן לבצע באמצעות ה-API הן כדלקמן:

  • חיפוש תלוי רישיות
  • חיפוש ביטויים רגילים
  • חיפוש פנים
  • חיפוש מטושטש
  • חיפוש הומופונים
  • חיפוש מילים נרדפות

הורד או הגדר

אתה יכול להוריד את קובץ ה-JAR מ סעיף ההורדות, או פשוט לקבל את המאגר העדכני ביותר ואת תצורות התלות עבור ה-pom.xml של יישומי Java המבוססים על maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>21.3</version> 
</dependency>

ישנם שני שלבים לביצוע החיפוש בתוך קבצים המאוחסנים בתיקייה.

  • יצירת אינדקס
  • בצע חיפוש

אינדקס קבצים באמצעות Java

אינדקס מכיל טקסט סרוק של כל המסמכים. לכן, כאשר אתה הולך לבצע פעולת חיפוש, רק האינדקס מופנה, ולא הטקסט של המסמכים המקוריים. כדי לאפשר חיפוש מיידי בין אלפי מסמכים עם פורמטים זהים או שונים של קובץ, עליך ליצור אינדקס ולהוסיף אליו את המסמכים הללו. כאשר מסמכים מתווספים לאינדקס, האינדקס מוכן לטפל בשאילתות החיפוש.

שתי השורות הפשוטות הבאות יוצרות אינדקס וגם מוסיפים את תיקיית המסמכים לאינדקס.

Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");

לאחר אינדקס של מסמכים מרובים מאותם פורמטים או פורמטים שונים כמו (Word, PDF, Excel ו-HTML), נוכל להתקדם לעיבוד שאילתת חיפוש ספציפית (מונח חיפוש “Draw”) מעליהם. להלן השלבים לביצוע חיפוש טקסט במספר מסמכים בתוך תיקיה באמצעות Java:

  • ציין את תיקיית המקור של המסמכים ואת תיקיית האינדקס.
  • צור אינדקס באמצעות תיקיית האינדקס.
  • הוסף את תיקיית המקור לאינדקס.
  • הכן את מחרוזת השאילתה.
  • בצע חיפוש בשיטת search של מחלקה אינדקס.
  • חצו בכל תוצאות חיפוש עבור המאפיינים של כל מסמך.

קוד המקור הבא מבצע חיפוש טקסט ב-Java בכל המסמכים של התיקיה שסופקה.

// חפש טקסט שצוין במספר מסמכי PDF, Word, Excel, HTML בתיקייה באמצעות Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");

// חיפוש באינדקס עבור טקסט שצוין
SearchResult result = index.search("Draw");

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document Path: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrence : " + document.getOccurrenceCount());
}

נקבל את נתיב המסמך ואת מספר המופעים של מונחי החיפוש בכל המסמכים עם אותה תיקייה שצוינה. הנה צילום המסך להדמיה.

פלט טקסט חיפוש מלא

הדגש תוצאות חיפוש טקסט ב-Java

כעת נבצע את אותו חיפוש בטקסט מלא וגם נדגיש את כל המופעים התואמים את השאילתה שלך.

השלבים הבאים מראים כיצד להדגיש את תוצאות החיפוש של הטקסט:

  • צור אינדקס והוסף את תיקיית המסמכים לאינדקס.
  • הכן את מחרוזת השאילתה.
  • חפש בתיקיית המסמכים בשיטת search.
  • תוך כדי חציית התוצאות, צור את ההדגשה באמצעות HtmlHighlighter.
  • השתמש בשיטת ההדגשה כדי להדגיש את תוצאות החיפוש.

הקוד הבא יוצר את פלט ה-HTML עם תוצאות חיפוש מודגשות באמצעות Java.

// הדגש את תוצאות החיפוש של הטקסט המלא של מסמכים מרובים בתיקייה ב-Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder

String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

for (int i = 0; i < result.getDocumentCount(); i++) 
{
    FoundDocument document = result.getFoundDocument(i);

    String path = "path/Highlighted-"+ i +".html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); 
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
    index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}

כפלט, נקבל מספר קובצי HTML. כל קובץ יציג את התוכן של מסמך נפרד (למשל excel.xlsx, source.docx, target.docx) עם מונחי חיפוש/מילים מודגשות. להלן פלט ה-HTML המודגש של קובץ DOCX, קובץ TXT וקובץ PDF שהושגו באמצעות הקוד שלמעלה.

הדגש תוצאות חיפוש בטקסט מלא בתוכן באמצעות Java

קבל רישיון API בחינם

אתה יכול לקבל רישיון זמני בחינם על מנת להשתמש ב-API ללא מגבלות ההערכה.

סיכום

במאמר זה, למדנו לחפש טקסט בתוך מספר מסמכים של תיקיה ב-Java. בנוסף, דנו כיצד להדגיש באופן פרוגרמטי את הטקסט של תוצאות החיפוש בפורמט HTML עבור קובצי MS Word, קבצי TXT וקבצי PDF באמצעות GroupDocs.Search for Java.

תוכל ללמוד עוד על ה-API באמצעות תיעוד. דוגמאות רבות נוספות זמינות ב-GitHub. לשאלות, צור איתנו קשר דרך הפורום.

ראה גם