آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در جستجو در دیتابیس آیات قرآن

117576  4 سال پیش  4 سال پیش
0 0

سلام

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

public List<Verse> searchInVerse(String word){
List<Verse> resultInSearch = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM Ayeh WHERE text_clean LIKE '%"+word+"%'",null);
if (cursor.moveToFirst()){
do {
Verse verse = new Verse();
verse.setIndex(cursor.getInt(0));
verse.setJoz(cursor.getInt(1));
verse.setPageNo(cursor.getInt(2));
verse.setSura(cursor.getInt(3));
verse.setAya(cursor.getInt(4));
verse.setText(cursor.getString(5));
verse.setTextClean(cursor.getString(6));
verse.setSurahName(getSurahById(verse.getSura()).getBerab());
resultInSearch.add(verse);
}
while (cursor.moveToNext());
}
cursor.close();
return resultInSearch;

}
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
ChookD1  4 سال پیش
+2 0

بنظرم این مشکل از اینجا آب میخوره که شما به حروف فارسی و عربی توجه نکرده اید.
میدونید که کاربری که کیبوردش فارسی هست میاد و
کلمه ی یوسف رو به اینصورت مینویسه: ی و س ف
اما کاربر عربی میاد و اینطور مینویسه  :  ي و س ف
از اونجایی که دیتابیس شما قرآن هست و در قرآن تمامی کلمات ، عربی هستند ، شما میباست موقع کلیک کردن سرچ ، یک شرط بزارید ،
و بگید که این کلمات اگه در استرینگ وجود داشت ، تبدیل به معادلش در عربی بشه: 1- کاف 2- یاء 3- هاء ( هـ ) ( یک تحقیق بکنید سر اینیکی ببینید توی سرچها اگه خوب در نیومد ، نیاز به تغییر داره اما گموان نمیکنم این مورد نیاز باشه )

همچنین شاید بهتر باشه که از یک کیبورد داخلی استفاده بشه که کلماتی مانند أ - إ هم داخلش لحاظ بشه 
میتونید درصورت وارد کردن  ـــــِــــ   ـــــَــــ  ـــــــُــــ   ــــــًـــــ   ــــــٍــــ   ــــــٌـــــ   ـــــّــــ و ... اینا رو توی نتایجتون نگنجونید ، چون ممکنه برخی کاربرا اینا رو هم وارد کنند.

امیدوارم که مشکلتون از اینجا آب خورده باشه.

پاسخ به سوال 
117576  4 سال پیش
0 0

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

0 0
شاید مثلا دارید و یعقوب رو جست و جو میکنید. در زبان عربی ، هرموقع که واو میاد که میخواد قبل و بعد رو به هم پیوند زنه ، میچسبه به کلمه ی بعد از خودش ، مثلا میشه "ویعقوب" ، شما باز ببینید یه بار دیگه بررسی بکنید ، ببینید کلماتی که داخلشون یاء و کاف و اینها نیست ، براتون میاره یا خیر ؟ (4 سال پیش)
پاسخ به سوال 
117576  4 سال پیش
0 0

چند تا کلمه سرچ کردم که "ی" و "ک" داخلش نبود ،خروجی داد.ولی برای کلماتی که اینها داخلش هست باید چی کار کرد .چون من یک کلمه را با هر دو "ی" امتحان کردم خروجی نداد ولی وقتی از دیتابیس کپی پیست کردم خروجی داد

0 0
مطمئنا مشکل در هنگام تایپ شما هست. چگونه دارید کلماتی که مخاطب شما سرچ کرده رو تبدیل به عربی میکنید ؟ لطفا در همین زیر کدهاشو قرار بدید. (4 سال پیش)
0 0
خوب اینارو به چه کلمات عربی تبدیل کنم ؟ چه با ی نقطه دار و چه با ی بی نقطه خروجی نمیده. (4 سال پیش)
0 0
شاید الگوی تبدیل کننده ی شما به درستی عمل نمیکنه ، بخاطر این میگم که کد خودتونو بزارید برامون. متیونید تستهای مختلف بگیری ببینید داره درست تبدیل میکنه یا خیر (4 سال پیش)
پاسخ به سوال 
hasan20n  4 سال پیش
+2 0

سلام دوست گرامی شما برای convert کردن حروف فارسی با حروف عربی هم میتوانید از رویداد تکست واچر editText استفاده کنید که با ورود هر حرفی اونو کانورت کنه بعد با کلیک روی دکمه مورد نظرتون متنو سرچ کنه یا اینکه از این لینک که خودم قبلا برای ساخت شمارشگر ازش استفاده کرده بودم استفاده کنید///// 

لینک آموزشی

0 0
داخل کیبورد امولیتور وقتی کیبورد رو فارسی کردم سه تا حرف "ی" وجود داره و وقتی مثلا کلمه موسی رو تایپ کردم با دو تا از این حرفها خروجی نمیده و با اون یکی دیگه خروجی میده و داخل گوشی خودم کیبوردش فقط یک حرف "ی" وجود داره و حالا موندم این حرف "ی" که کاربر وارد میکنه رو به کدوم یکی از این سه تا حرف تبدیل کنم ، چون داخل دیتابیس از هر سه از این حروف استفاده شده. یک اپلیکیشن مشابه این رو هم از کافه بازار دانلود کردم که ببینم بخش سرچش چجوریه ، مثلا کلمه موسی رو وقتی با گوشی خودم سرچ کردم خروجی نمیده.این لینک اپ هست: لینک (4 سال پیش)
0 0
همونطور که بهتون گفته بودم ، نیاز دارید تا کلیه ای موارد رو مدنظر قرار بدید و با اونی که براتون جواب میده ، جایگزینش کنید. (4 سال پیش)
0 0
لینک ماشاءالله نصب خوبی گرفته اید ، چند مدت هست روی کافه بازار بردیدش ؟ تبلیغ هم براش کردید ؟ (4 سال پیش)
0 0
نه این اپ برای من نیست گفتم که میخواستم ببینم بخش سرچش چجوریه .از کافه بازار پیداش کردم (4 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .