ورود

نسخه کامل مشاهده نسخه کامل : ایندکس گذاری(فوری!!!)



hadimusavy
09-07-2012, 17:42
سلام
من یه پروژه ای دارم تو c#که تو اون باید یه پوشه که توش محتوی فایل txt هستش رو گرفت و کلماتش رو index گذاری کرد تا تو جستجوهای بعدی از همون ایندکس ها استفاده کنه.
استاد گفته از bplus treeاستفاده کنین.من تو ایندکس گذاریش موندم لطفا راهنماییم کنید.
اینو هم بگم اون پوشه ای که محتوی فایل txt هست شاید تو خودش یه پوشه دیگه هم داشته باشع که محتوی فایل txt باشه.
و در اخر هم خروجی برنامه این خواهد بود که وقتی کاربر کلمه ای رو سرچ میکنه باید ادرس اون فایلی که اون کلمه توش هست برگشت داده بشه.
خواهشا کمک کنید

_H2_
09-07-2012, 22:32
سلام
اگر بخواهم صرفاً از روی نوعی کنجکاوی، ساده ترین و کوتاه ترین کد ممکن را بنویسم، احتمالاً بیخیال +B میشوم و با امکانات Framework4 به راحتی کد زیر را (در ساده ترین شکل ممکن) مینویسم و از دیدنش لذت میبرم!

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کافی است کلمه را به شی خروجی کد فوق بدهید و نام فایلهای مربوطه را تحویل بگیرید.
موفق باشید.

hadimusavy
09-07-2012, 23:32
من تو ایندکس گذاری مشکل دارم یعنی نمی دونم چطوری باید فایلو ایندکس کنم.اگه کسی بلده یه کمکی برسومه چشام کور شد از بس pdf خوندم

_H2_
10-07-2012, 22:21
سلام
این کد از الگوریتم +B استفاده نمیکند ولی کاری که میخواهید را انجام میدهد!

hadimusavy
10-07-2012, 23:19
با سلام دوباره
خودم یه چیزایی شبیه این کد شما نوشته بودم ولی استاد قبول نکرد.
من اصلا فعلا با +Bکاری ندارم فقط میخوام یکی روش ایندکس گذاری تو یه فایل متنی رو یادم بده. یعنی فرضا سه تا فایل txt داریم تو یه درایو که من میخوایم کلمه به کلمه ی این متنها رو ایندکس بذاریم و تو یه فایل با serializeکردن ذخیره کنیم.
خودم فکر میکنم باید این کارو بکنم


serializable
class term
{
public string word;
public string [ ]directoris;
}
ولی دیگه نمیدونم چطوری ایندکس بزارم
ممنون میشم کمکم کنید

_H2_
13-07-2012, 19:56
سلام
اگر واقعاْ بخواهیم بحت ایندکس را بصورت خاص کنیم، این مورد در مثال فوق وقتی لازم میشود که بخواهید اطلاعات حاصل از جاروب (اسکن) پوشه را در یک دیتابیس رابطه ای ذخیره کنید که در این شرایط نیاز به یک رابطه چند به چند بین جدول کلمات و جدول فایلها خواهید داشت، در نتیجه هر فایل و هر کلمه یک شاخص عددی یکتا بعنوان کلید دسترسی خواهند داشت و به وسیله آن در جدول سومی با هم رابطه چند به چند برقرارخواهند کرد.
وگرنه نیازی به این کارها نیست.

==============

یک مثال عملی برایتان درست کردم که میتوانید در عمل نتیجه را مشاهده کنید.
به محض انتخاب یک پوشه، کل فایلهای txt در کلیه زیر پوشه ها پیدا و کلمات آن شکسته و جدا شده و در یک لیست مرتبط شده قرار میگیرد، که با وارد کردن نام یک کلمه جستجویی بر اساس الگوریتم جستجوی باینری لیست مرتب شده انجام میشود و نام کلیه فایلهای مرتبط نمایش داده میشود.

پروژه به کمک VS2012Beta نوشته شده ولی میتوانید سورس را با برنامه ای مثل Notepad هم بررسی کنید.
فایل exe کامپایل شده هم در شاخه bin موجود است که برای اجرا فقط نیاز به Framework4 دارد.

پینهاد میکنم exe و سورس را ببینید.
برای ذخیره دیکشنری فوق در یک فایل هم، به سادگی میتوانید از کلاس BinaryFormatter استفاده کنید.

(لینک موقت)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

==============



class term
{
public string word;
public string [ ]directoris;
}

این تکه کد شما معدل همان تعریف جنریک در پست دوم است:
<string, System.Collections.Generic.IList<string>>

==============

موفق باشید.

aminr61
13-05-2013, 08:38
سلام دوست عزیز:
این لینک که شما قرار دادید متاسفانه کار نمیکنه؟!
چطور میتونم دریافت کنم؟



سلام
اگر واقعاْ بخواهیم بحت ایندکس را بصورت خاص کنیم، این مورد در مثال فوق وقتی لازم میشود که بخواهید اطلاعات حاصل از جاروب (اسکن) پوشه را در یک دیتابیس رابطه ای ذخیره کنید که در این شرایط نیاز به یک رابطه چند به چند بین جدول کلمات و جدول فایلها خواهید داشت، در نتیجه هر فایل و هر کلمه یک شاخص عددی یکتا بعنوان کلید دسترسی خواهند داشت و به وسیله آن در جدول سومی با هم رابطه چند به چند برقرارخواهند کرد.
وگرنه نیازی به این کارها نیست.

==============

یک مثال عملی برایتان درست کردم که میتوانید در عمل نتیجه را مشاهده کنید.
به محض انتخاب یک پوشه، کل فایلهای txt در کلیه زیر پوشه ها پیدا و کلمات آن شکسته و جدا شده و در یک لیست مرتبط شده قرار میگیرد، که با وارد کردن نام یک کلمه جستجویی بر اساس الگوریتم جستجوی باینری لیست مرتب شده انجام میشود و نام کلیه فایلهای مرتبط نمایش داده میشود.

پروژه به کمک VS2012Beta نوشته شده ولی میتوانید سورس را با برنامه ای مثل Notepad هم بررسی کنید.
فایل exe کامپایل شده هم در شاخه bin موجود است که برای اجرا فقط نیاز به Framework4 دارد.

پینهاد میکنم exe و سورس را ببینید.
برای ذخیره دیکشنری فوق در یک فایل هم، به سادگی میتوانید از کلاس BinaryFormatter استفاده کنید.

(لینک موقت)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

==============


این تکه کد شما معدل همان تعریف جنریک در پست دوم است:
<string, System.Collections.Generic.IList<string>>

==============

موفق باشید.