اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
پیشنیاز:
چگونه با استفاده از لوسین مطالب را ایندکس کنیم؟
مقدمه
اگر به جستجوی سایت دقت کرده باشید، قابلیتی تحت عنوان پیشنهاد «عبارات مشابه» به آن اضافه شده است:
این مورد بر اساس ماژول غلط یاب املایی لوسین تهیه شده و بسیار شبیه به "did you mean" جستجوی گوگل است. در ادامه به نحوه پیاده سازی آن خواهیم پرداخت.
کتابخانههای مورد نیاز
علاوه بر کتابخانه لوسین، نیاز به دریافت پروژه Contrib آن نیز میباشد تا بتوان از اسمبلی Lucene.Net.Contrib.SpellChecker.dll موجود در آن استفاده کرد.
نحوه کار با غلط یاب املایی لوسین
خلاصه کار با غلط یاب املایی لوسین همین چند سطر ذیل است:
کار بر اساس یک ایندکس از پیش موجود لوسین شروع میشود. در اینجا فرض شده است که این ایندکس در پوشه indexPath قرار دارد.
در ادامه شیء spellChecker را آغاز خواهیم کرد. بهتر است پوشه تولید فایلهای آن با پوشه ایندکس اصلی یکسان نباشد. اگر یکسان درنظر گرفته شود، تمام مداخل جدید به ایندکس موجود اضافه خواهند شد که میتواند سرعت جستجوی معمولی را کاهش دهد.
سپس کار تهیه ایندکس جدید غلط یاب املایی، شروع خواهد شد. متد spellChecker.ClearIndex، اطلاعات موجود در ایندکسی قدیمی را حذف کرده و سپس spellChecker.IndexDictionary، فیلدهایی را که نیاز داریم در تهیه غلط یاب املایی حضور داشته باشند، مشخص میکند.
همانطور که ملاحظه میکنید ایندکس جدید تهیه شده، بر اساس بانک اطلاعاتی واژههای موجود در ایندکس اصلی برنامه که توسط indexReader معرفی شده، تهیه میشود. برای نمونه در تصویر ابتدای مطلب جاری، واژههای پیشنهادی، واژههایی هستند که پیشتر یکبار تایپ شده و در بانک اطلاعاتی برنامه موجود بودهاند.
و در آخر برای استفاده از امکانات تهیه شده، تنها کافی است متد spellChecker.SuggestSimilar را فراخوانی کنیم (در زمانیکه جستجوی اصلی سایت نتیجهای را ارائه نداده است). حاصل لیستی از واژههای مشابه است.
چگونه با استفاده از لوسین مطالب را ایندکس کنیم؟
مقدمه
اگر به جستجوی سایت دقت کرده باشید، قابلیتی تحت عنوان پیشنهاد «عبارات مشابه» به آن اضافه شده است:
این مورد بر اساس ماژول غلط یاب املایی لوسین تهیه شده و بسیار شبیه به "did you mean" جستجوی گوگل است. در ادامه به نحوه پیاده سازی آن خواهیم پرداخت.
کتابخانههای مورد نیاز
علاوه بر کتابخانه لوسین، نیاز به دریافت پروژه Contrib آن نیز میباشد تا بتوان از اسمبلی Lucene.Net.Contrib.SpellChecker.dll موجود در آن استفاده کرد.
نحوه کار با غلط یاب املایی لوسین
خلاصه کار با غلط یاب املایی لوسین همین چند سطر ذیل است:
var indexReader = IndexReader.Open(FSDirectory.Open(indexPath), readOnly: true); // Create the SpellChecker var spellChecker = new SpellChecker.Net.Search.Spell.SpellChecker(FSDirectory.Open(indexPath + "\\Spell")); // Create SpellChecker Index spellChecker.ClearIndex(); spellChecker.IndexDictionary(new LuceneDictionary(indexReader, "Title")); spellChecker.IndexDictionary(new LuceneDictionary(indexReader, "Body")); //Suggest Similar Words var results = spellChecker.SuggestSimilar(term, number, null, null, true);
در ادامه شیء spellChecker را آغاز خواهیم کرد. بهتر است پوشه تولید فایلهای آن با پوشه ایندکس اصلی یکسان نباشد. اگر یکسان درنظر گرفته شود، تمام مداخل جدید به ایندکس موجود اضافه خواهند شد که میتواند سرعت جستجوی معمولی را کاهش دهد.
سپس کار تهیه ایندکس جدید غلط یاب املایی، شروع خواهد شد. متد spellChecker.ClearIndex، اطلاعات موجود در ایندکسی قدیمی را حذف کرده و سپس spellChecker.IndexDictionary، فیلدهایی را که نیاز داریم در تهیه غلط یاب املایی حضور داشته باشند، مشخص میکند.
همانطور که ملاحظه میکنید ایندکس جدید تهیه شده، بر اساس بانک اطلاعاتی واژههای موجود در ایندکس اصلی برنامه که توسط indexReader معرفی شده، تهیه میشود. برای نمونه در تصویر ابتدای مطلب جاری، واژههای پیشنهادی، واژههایی هستند که پیشتر یکبار تایپ شده و در بانک اطلاعاتی برنامه موجود بودهاند.
و در آخر برای استفاده از امکانات تهیه شده، تنها کافی است متد spellChecker.SuggestSimilar را فراخوانی کنیم (در زمانیکه جستجوی اصلی سایت نتیجهای را ارائه نداده است). حاصل لیستی از واژههای مشابه است.