العمل مع نتائج البحث باستخدام C#

إن إدارة نتائج البحث بكفاءة تشكل حجر الزاوية لأي نظام قوي لاسترجاع المستندات، وفهم كيفية تفسير هذه النتائج والاستفادة منها يمكن أن يعزز بشكل كبير عملية اتخاذ القرار القائمة على البيانات. في هذا الدليل، نستكشف كيفية العمل مع نتائج البحث باستخدام C#. من إعداد مستودع الفهرس إلى تكوين خيارات البحث الغامضة، يوفر هذا البرنامج التعليمي نهجًا واضحًا وعمليًا للتعامل مع استعلامات البحث ونتائجها. سواء كنت بحاجة إلى تحليل المطابقات لمصطلحات مفردة أو عبارات معقدة، فإن هذه الطريقة تزودك بالقدرة على معالجة النتائج بشكل شامل واكتشاف الأنماط ذات المغزى. بحلول النهاية، ستكون واثقًا من كيفية استرجاع نتائج البحث في C# والاستفادة منها لتطبيقات متنوعة.

خطوات التعامل مع نتائج البحث باستخدام C#

  1. قم بتضمين مكتبة GroupDocs.Search for .NET في مشروعك للعمل مع نتائج البحث
  2. إنشاء كائن فهرس باستخدام فئة Index وتحديد مسار المجلد حيث سيتم تخزين الفهرس
  3. استخدم طريقة Index.Add لإضافة المستندات من المجلد المحدد إلى الفهرس
  4. إنشاء مثيل لـ SearchOptions وتمكين البحث الضبابي عن طريق تعيين FuzzySearch.Enabled على true
  5. تحديد الحد الأقصى لعدد الاختلافات المسموح بها (على سبيل المثال، 3) باستخدام FuzzyAlgorithm
  6. استخدم طريقة Index.Search للبحث عن المستندات التي تحتوي على مصطلحات أو عبارات محددة مع خيارات البحث المكوّنة
  7. إخراج عدد المستندات التي تم العثور عليها (DocumentCount) وإجمالي عدد مرات ظهور مصطلحات البحث (OccurrenceCount)
  8. قم بالتنقل بين المستندات في نتائج البحث باستخدام طريقة GetFoundDocument. بالنسبة لكل مستند، اعرض مسار الملف وعدد مرات الظهور
  9. بالنسبة لكل مستند، قم بالتكرار عبر FoundFields لعرض التفاصيل مثل اسم الحقل وعدد مرات الظهور والمصطلحات التي تم العثور عليها والعبارات التي تم العثور عليها

للعمل بشكل فعال مع نتائج البحث، تحتاج أولاً إلى إعداد مستودع فهرس لمستنداتك. باستخدام مقتطف التعليمات البرمجية المقدم، يتم إنشاء فهرس في مجلد محدد، وإضافة مستندات من مجلد آخر إليه. ثم يتم تكوين خيارات البحث لتمكين البحث الضبابي، مما يسمح بالمطابقة المرنة مع حد أقصى للاختلاف. يسهل هذا الإعداد البحث عن مصطلحات مثل أينشتاين أو عبارات مثل نظرية النسبية باستخدام خوارزميات متقدمة. بمجرد تنفيذ البحث، يتم الوصول إلى النتائج من خلال كائن SearchResult. يتم عرض العدد الإجمالي للمستندات المطابقة للاستعلام وعدد مرات ظهورها. يتم استرداد معلومات مفصلة حول كل مستند، بما في ذلك مسار الملف وظهور المصطلحات والعبارات. من خلال التكرار عبر الحقول الموجودة داخل كل مستند، يمكنك تحديد حقول معينة تحتوي على المطابقات وتحليل المصطلحات والعبارات بتردداتها الخاصة. توضح هذه الخطوة كيفية الوصول إلى نتائج بحث الفهرس باستخدام C#، مما يوفر عرضًا منظمًا للبيانات المستردة.

الكود للتعامل مع نتائج البحث باستخدام C#

using GroupDocs.Search;
using GroupDocs.Search.Options;
using GroupDocs.Search.Results;
using System;
namespace WorkwithSearchResultsUsingCSharp
{
internal class Program
{
static void Main(string[] args)
{
// Apply the license to remove the restrictions
// imposed by the Search library
License lic = new License();
lic.SetLicense(@"GroupDocs.Search.lic");
string indexFolder = @"d:\MyIndex\";
string documentsFolder = @"d:\MyDocuments\";
// Creating an index
Index index = new Index(indexFolder);
// Indexing documents from the specified folder
index.Add(documentsFolder);
// Creating search options
SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // Enabling the fuzzy search
options.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(3); // Setting the maximum number of differences to 3
// Search for documents containing the word 'Einstein' or the phrase 'Theory of Relativity'
SearchResult result = index.Search("Einstein OR \"Theory of Relativity\"", options);
// Printing the result
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount);
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\t\tField: " + field.FieldName);
Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
// Printing found terms
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
}
}
// Printing found phrases
if (field.TermSequences != null)
{
for (int k = 0; k < field.TermSequences.Length; k++)
{
string sequence = string.Join(" ", field.TermSequences[k]);
Console.WriteLine("\t\t\t" + sequence.PadRight(30) + field.TermSequencesOccurrences[k]);
}
}
}
}
}
}
}

إن إدارة نتائج البحث وتفسيرها بشكل فعّال أمر بالغ الأهمية لتعظيم قيمة البيانات المفهرسة. لا تتضمن هذه العملية استرداد المستندات فحسب، بل تتضمن أيضًا التعمق في تكرار المصطلحات والمطابقات الخاصة بالمجالات وتسلسلات العبارات. تُمكِّنك الطريقة المعروضة من تحليل النتائج بطريقة منظمة ومفصلة، مما يسمح برؤى متقدمة للبيانات. علاوة على ذلك، تضمن استقلالية منصة المكتبة التكامل السلس عبر الأنظمة والبيئات المختلفة، مما يجعلها خيارًا متعدد الاستخدامات للمهام المتعلقة بالبحث. من خلال إتقان هذا النهج، يمكنك التعامل بكفاءة مع نتائج البحث بلغة C# وتطبيقها على مجموعة واسعة من السيناريوهات، من تحليل البيانات إلى استرداد المستندات في الوقت الفعلي.

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

 عربي