وفي مقال آخر رأينا أن ما هي المرادفات و كيفية الحصول على جميع المرادفات لأي كلمة. ماذا عن إيجاد هذه المرادفات في وثائق مختلفة؟ ستوجهك هذه المقالة حول كيفية البحث عن مرادفات أي استعلام محدد (كلمة) في ملفات متعددة باستخدام C #.

سيتم تناول الموضوعات التالية أدناه:

NET API للبحث عن المرادفات في ملفات متعددة

GroupDocs.Search يوفر .NET API الذي يسمح بالبحث عن أي كلمة ومرادفاتها في ملفات متعددة للمجلد المحدد. سأستخدم واجهة برمجة التطبيقات هذه في الأمثلة الموضحة من هذه المقالة. يتيح لك البحث في قائمة كبيرة من تنسيقات المستندات. إلى جانب البحث عن المرادفات ، يدعم GroupDocs.Search for .NET أيضًا بعض تقنيات البحث الأخرى التي تشمل:

  • بحث غامض
  • بحث حساس لحالة الأحرف
  • بحث Homophone
  • البحث عن التعبيرات العادية
  • بحث وايلد كارد

يمكنك تنزيل مثبت DLL أو MSI من قسم التنزيلات أو تثبيت API في تطبيق .NET عبر NuGet.

PM> Install-Package GroupDocs.Search

البحث عن مرادفات في ملفات متعددة باستخدام C

توضح الخطوات كيفية البحث عن المرادفات (الكلمات ذات المعاني المتشابهة) في الملفات داخل مجلد باستخدام C #.

  • حدد استعلام البحث ومجلد الفهرس ومجلد المستند.
  • قم بإنشاء فهرس بمجلد فهرس محدد باستخدام فئة فهرس.
  • أضف مجلد المستند إلى الفهرس.
  • قم بإنشاء SearchOptions واضبط UseSynonymSearch على true.
  • قم باستدعاء طريقة بحث لفئة الفهرس وتمرير الاستعلام وخيارات البحث.
  • لطباعة الملخص ، استخدم خصائص SearchResult المسترجعة.

يوضح كود المصدر كيفية العثور على جميع المرادفات داخل جميع ملفات المجلد باستخدام C #

// البحث عن المرادفات في ملفات ومجلدات متعددة باستخدام C #
string query = "make";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";

// إنشاء فهرس في المجلد المحدد
Index index = new Index(indexFolder);
index.Add(documentsFolder);

// إنشاء كائن خيارات البحث
SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Enabling Synonym Search

// ابحث عن كلمة "Make"
// بالإضافة إلى كلمة "make" ، سيتم أيضًا البحث عن المرادفات "do، reason، get، ..."
SearchResult result = index.Search(query, options);
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Occurrences: " + result.OccurrenceCount);
Query: **make**
Documents: 2
Occurrences: 22

تطبع الخطوات التالية النتائج بالتفصيل بعد الحصول على جميع المرادفات وعدد مرات حدوثها في كل مستند.

  • اجتياز نتائج البحث التي تم استردادها باستخدام الكود أعلاه.
  • احصل على كل FoundDocument باستخدام طريقة GetFoundDocument.
  • طباعة الخصائص repective لكل FoundDocument.
  • اجتياز FoundFields داخل كل FoundDocument للحصول على Found Document Fields.
  • من كل FoundDocumentField ، يمكنك الحصول على شروطه وعدد مرات حدوثه داخل كل مستند.

يقوم الكود المصدري التالي بطباعة نتائج البحث عن المرادفات مع عدد مرات حدوث كل مصطلح تم البحث عنه باستخدام C #.

// طباعة نتائج البحث عن المرادفات في C #
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount + "\n");
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\tField: " + field.FieldName);
        Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
        // وجدت الطباعة حيث وجدت
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
    }
}
Query: **make**
Documents: 2
Total occurrences: 22

Document: C:/documents/sample.docx
Occurrences: 6
    Field: content
    Occurrences: 6
        make             1
        get                 2
        cause            1
        do                  2
Document: C:/documents/sample.txt
Occurrences: 16
    Field: content
    Occurrences: 16
        get                  4
        cause             1
        do                  11

مرادفات البحث وطباعة النتائج باستخدام C # - أكمل الكود

إليك كود المصدر الكامل الذي يجد أولاً جميع المرادفات وفقًا للاستعلام المقدم ، ثم يطبع جميع تكرارات جميع المرادفات في كل مستند داخل هذا المجلد باستخدام C #.

// البحث عن المرادفات في ملفات ومجلدات متعددة وطباعة النتائج باستخدام C #
string query = "make";
string indexFolder = @"path\indexFolder";
string documentsFolder = @"path\documentsFolder";

// إنشاء فهرس في المجلد المحدد
Index index = new Index(indexFolder);
// فهرسة المستندات من المجلد المحدد
index.Add(documentsFolder);

// إنشاء كائن خيارات البحث
SearchOptions options = new SearchOptions();
options.UseSynonymSearch = true; // Enabling synonym search

// ابحث عن كلمة "Make"
// بالإضافة إلى كلمة "صنع" ، سيتم أيضًا البحث عن الكلمات "تفعل ، سبب ، تحصل ، ..."
SearchResult result = index.Search(query, options);

// طباعة النتيجة
Console.WriteLine("Query: " + query);
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount + "\n");
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("Document: " + document.DocumentInfo.FilePath);
    Console.WriteLine("Occurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\tField: " + field.FieldName);
        Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
        // وجدت الطباعة حيث وجدت
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
    }
}

استنتاج

في الختام ، لقد تعلمت كيفية العثور على الكلمات المحددة وكذلك مرادفاتها في مستندات متعددة داخل المجلد المحدد باستخدام C #. يمكنك محاولة تطوير تطبيق .NET الخاص بك للبحث عن أي كلمة ومرادفاتها داخل ملفات متعددة.

تعرف على المزيد حول .NET Search Automation API من الوثائق. لتجربة الميزات ، يمكنك إلقاء نظرة على أمثلة على مستودع GitHub. تواصل معنا لأي استفسار عبر المنتدى.

أنظر أيضا