PDA

View Full Version : سریعترین روش جستجو در متن قرآن



chikar
پنج شنبه 15 شهریور 1397, 17:35 عصر
سلام
اگر بخواهیم در قرآن جستجو کنیم سریع ترین راه چی هست؟
استفاده از قرآن به صورت فایل های txt یا xml در سرور؟ و به طور کلی روش های مبتنی بر NoSql
استفاده از قرآن ذخیره شده در دیتابیس و اتصال به دیتابیس در سرور؟
کدوم روش سریعتر هست؟ اگر دیتابیس سریعتر هست چه دیتابیسی سریعتر هست؟اگر فایل سریعتر هست چه فایلی؟
چون ممکن هست کاربر در هر بار مراجعه اش چندین بار جستجو کنه، نیاز هست هر بار درخواست کاربر به سرور فرستاده بشه، آیا امکانش هست جستو در سمت کلاینت انجام بشه، البته به شرطی که سرعت زیاد باشه و هزینه ای هم برای کاربر نداشته باشه؟

plague
جمعه 16 شهریور 1397, 15:30 عصر
mysql یدونه fulltext index داره که اگه اشتباه نکنم فقط رو myisam جواب میده (خیلی وقت پیش چک کردم شاید تو ورژن های جدید innodb رو هم پوشش داده باشه )
که میتونی تکست رو ایندکس کنی برای جستجوی سریعتر
میتونی خودت تست کنی در مقایسه با جستجوی معمولی چقد زمان میبره
ولی خیلی انتظار معجزه نباید داشت ازش

احتمالا بهترین آپشنت استفاده از یه چیزی مثل sphinx هستش که مخصوص این کار نوشته شده
http://sphinxsearch.com/docs/current.html#about

chikar
جمعه 16 شهریور 1397, 21:21 عصر
mysql یدونه fulltext index داره که اگه اشتباه نکنم فقط رو myisam جواب میده (خیلی وقت پیش چک کردم شاید تو ورژن های جدید innodb رو هم پوشش داده باشه )
که میتونی تکست رو ایندکس کنی برای جستجوی سریعتر
میتونی خودت تست کنی در مقایسه با جستجوی معمولی چقد زمان میبره
ولی خیلی انتظار معجزه نباید داشت ازش

احتمالا بهترین آپشنت استفاده از یه چیزی مثل sphinx هستش که مخصوص این کار نوشته شده
http://sphinxsearch.com/docs/current.html#about


سلام درسته innodb هم می شه از fulltext index استفاده بشه ولی آیا این سریعترین راه هست؟
مورد دوم هم که اشاره کردید sphinx ، بیشتر تبلیغ چشم رع و مجسمه ابوالهل و از نماد های اصلی شیطان هست و آیا منطقی هست که جستجو در قرآنی که اومده بساط این چیزا رو ریشه کن کنه استفاده از sphinx باشه؟

peymang
شنبه 17 شهریور 1397, 11:33 صبح
می تونی کل قرآن رو سمت کلاینت روی sqlite داشته باشی و مثل یه برنامه نصب بشه حالا چه روی ویندوز/لینوکس/مک/اندروید/ ای او اس .
و از سرور فقط برای اپدیت کردن دیتابیس برنامه استفاده کنی.
مثلا صوت رو پیشفرض قرار ندی چون حجم برنامه میره بالا و ممکنه کسی نیاز نداشته باشه و اگه کسی خواست صوت رو به برنامه اضافه کنه.

plague
شنبه 17 شهریور 1397, 13:29 عصر
سلام درسته innodb هم می شه از fulltext index استفاده بشه ولی آیا این سریعترین راه هست؟
مورد دوم هم که اشاره کردید sphinx ، بیشتر تبلیغ چشم رع و مجسمه ابوالهل و از نماد های اصلی شیطان هست و آیا منطقی هست که جستجو در قرآنی که اومده بساط این چیزا رو ریشه کن کنه استفاده از sphinx باشه؟

نمیدونم من به اندازه کافی خرافاتی نیستم که نظر بدم در این ضمینه

chikar
شنبه 17 شهریور 1397, 14:34 عصر
می تونی کل قرآن رو سمت کلاینت روی sqlite داشته باشی و مثل یه برنامه نصب بشه حالا چه روی ویندوز/لینوکس/مک/اندروید/ ای او اس .
و از سرور فقط برای اپدیت کردن دیتابیس برنامه استفاده کنی.
مثلا صوت رو پیشفرض قرار ندی چون حجم برنامه میره بالا و ممکنه کسی نیاز نداشته باشه و اگه کسی خواست صوت رو به برنامه اضافه کنه.

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

peymang
شنبه 17 شهریور 1397, 16:36 عصر
حجم کل قرآن به 2 مگ هم نمیرسه پس فرقی نمی کنه چه دیتابیسی استفاده کنی. ایه به ایه هم بخوای اضافه کنی به دیتابیس تقریبا 6ک رکورد میشه. پس حجم زیاد از رکورد نداری که بخوای مثلا از nosql یا همیچین چیزایی استفاده کنی.
سعی که از یه دیتابیس استفاده کنی که بهش اشنا و واردتر هستی.


ولی
اگه دقیق بگی می خوای چی کار کنی خیلی بهتر میشه راهنمایی کرد
مثلا میخوای یه چیزی در حد تست بنویسی یا یه پروژه کوچیک یا یه پروژه که مال یه نفر دیگس؟

اگه برای استفاده عموم می خوای بسازیش من بهت پیشنهاد می کنم که در قالب یه اپلیکشین باشه که بشه افلاین ازش استفاده کرد.
اپلیکشن انلاین برای اینجور چیزا خیلی کنده.
نمونه های قرآن که الان موجود هست : "وصل" برای اندروید یا "الانوار" برای ویندوز
مزایا اپلیکشن هم سرعت و در دسترس بودنش هست، ضمن اینکه هزینه مالی نوشتن یه اپ موبایل کمتر از هزینه راه اندازی یه اپ وب هست
و الان مردم بیشتر اطلاعاتشون رو از روی تلفن همراهشون چک می کنن و تمایل ندارن که از طریق سایت ها اینکارو انجام بدن.