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

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

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

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

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

.NET API לחיפוש טקסט

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

אתה יכול להוריד את קובצי ה-DLL או את תוכנית ההתקנה של MSI מ סעיף ההורדות או להתקין את ה-API באפליקציית NET שלך דרך NuGet.

PM> Install-Package GroupDocs.Search

חיפוש טקסט מלא באמצעות C#

ישנם שני שלבים עיקריים לבצע או ליישם חיפוש בטקסט מלא.

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

יצירת אינדקס

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

מהו מדד?

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

יצירת אינדקס

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

Index index = new Index("indexPath/FolderName/");

כאשר מסמכים מתווספים לאינדקס, האינדקס מוכן לטפל בשאילתות החיפוש. להלן כמה מטכניקות החיפוש שניתן לבצע באמצעות GroupDocs.Search for .NET:

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

בצע חיפוש ב-C#

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

להלן השלבים לביצוע חיפוש טקסט במספר מסמכים בתוך תיקיה:

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

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

// טקסט שאילתת חיפוש בכל המסמכים של התיקיה שסופקה ב-C#
string indexFolder =  @"indexPath/GroupDocs/index/";
string documentsFolder = @"documentPath/GroupDocs/source/";
string query = "video";

// יצירת אינדקס בתיקייה שצוינה והוספה של תיקיית מסמכים לאינדקס
Index index = new Index(indexFolder);
index.Add(documentsFolder);

// חיפוש באינדקס
SearchResult result = index.Search(query);
Console.WriteLine("Documents found: " + result.DocumentCount);

// חצו בכל מסמך של תוצאת החיפוש
foreach (FoundDocument document in result)
{
    Console.WriteLine("Document Path : " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurance : " + document.OccurrenceCount);
}

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

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

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

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

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

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

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

string indexFolder =    @"indexPath/GroupDocs/index/";
string documentFolder = @"documentPath/GroupDocs/source/";
string query = "draw";

// צור אינדקס בתיקייה שצוינה והוסף תיקיית מסמכים לאינדקס
Index index = new Index(indexFolder);
index.Add(documentFolder);

// חפש את מילת השאילתה
SearchResult result = index.Search(query);

// סמן את כל המופעים בטקסט
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
                    
    string path = indexFolder + "Highlighted-"+ i +".html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); 
    Highlighter highlighter = new HtmlHighlighter(outputAdapter); 
    index.Highlight(document, highlighter);
}

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

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

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

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

סיכום

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

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

ראה גם