انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
جستجو در بانک اطلاعاتی بزرگ (برنامه نویسی اندروید)

جستجو در بانک اطلاعاتی بزرگ (برنامه نویسی اندروید)

#1
با عرض سلام و ارادت خدمت مدیر محترم و سایر دوستان

من یه query دارم وقتی تو رویداد Textchang  تکست باکس برای جستجو استفاده می کنم با توجه به اینکه کل رکوردها حدودا 15000 رکورد هست با تایپ اولین حرف از برنامه خارج می شه. ولی وقتی از یه دکمه برای جستجو استفاده می کنم و حداقل از سه حرف برای جستجو استفاده می کنم مشکلی نداره و جستجو به راحتی انجام می شه.حالا دوستان نظر بدند مشکل کجاست و اگه روش دیگه ای برای اینکار هست یه نمونه کد برام بنویسید.نمونه کد:

کد:
Cursor cu=mydb.rawQuery("SELECT * FROM "+table+" WHERE "+field+" LIKE " +  in +word + "%'", null);

با این توضیح که in به صورت متغیر String  هست که  ابتدای کلمه جستجو کنه یا در هر جای کلمه. ضمن اینکه اطلاعات با استفاده از ArrayAdapter تو یه لیست ویو نمایش دداده می شه.

کد:
class AA extends ArrayAdapter<String>{

       public AA(){
           super(Main.this,R.layout.row_list,vaj);
       }
       @Override
       public View getView(final int position, View convertView, ViewGroup parent) {


           LayoutInflater in=getLayoutInflater();
           View row=in.inflate(R.layout.row_list, parent,false);

           row_list =(TextView) row.findViewById(R.id.txt_row_list);

           row_list.setText(""+displydic[position]);

           return (row);
       }


   }
پاسخ

جستجو در بانک اطلاعاتی بزرگ (برنامه نویسی اندروید)

#2
دوست عزیز توصیه نمیشه زمانی که رکورد های زیادی دارید از رویداد Textchang استفاده بشه
چون با کم/زیاد شدن هر کاراکترردستور query اجرا و کل جدول رو جستجو میکنه که به force close بر میخورید
پاسخ
 سپاس شده توسط admin

جستجو در بانک اطلاعاتی بزرگ (برنامه نویسی اندروید)

#3
(۱۳۹۴/۱۰/۰۴, ۰۹:۲۶ ب.ظ)foad.pezeshkian نوشته: دوست عزیز توصیه نمیشه زمانی که رکورد های زیادی دارید از رویداد Textchang  استفاده بشه
چون با کم/زیاد شدن هر کاراکترردستور query اجرا و کل جدول رو جستجو میکنه که به force close بر میخورید

اما تو برنامه های مشابه نظیر دیکشنری ها از رویداد Textchang به وفور استفاده می شه! شاید از روش دیگری برای جستجو استفاده میشه . مثل Full Text Search یا ... اگه راهی هست لطفا کمک کنید.
پاسخ

جستجو در بانک اطلاعاتی بزرگ (برنامه نویسی اندروید)

#4
(۱۳۹۴/۱۰/۰۷, ۰۷:۲۸ ب.ظ)Ezzat3 نوشته: اما تو برنامه های مشابه نظیر دیکشنری ها از رویداد Textchang به وفور استفاده می شه! شاید از روش دیگری برای جستجو استفاده میشه . مثل Full Text Search یا ... اگه راهی هست لطفا کمک کنید.

سلام.
در query (دستور sql) که برای برگرداندن کلمات شامل آن حرف یا عبارت (به صورت اولین حرف کلمه یا عبارت ابتدای کلمه) می نویسید، باید تعداد نتایج برگشتی (خوانده شده از جدول) را محدود کنید. یعنی مثلا تنها 15 کلمه اول برگردانده شود (در دیکشنری هم اگر مثلا 5000 کلمه با a شروع می شود، تنها چند کلمه اول نمایش داده می شود و بنابراین در query یک حدی برای نتایج برگشتی گذاشته اند، نه اینکه هر 5000 نتیجه برگردانده شوند).
برای قرار دادن محدودیت در تعداد نتایج (ردیف های) برگشتی، از کلمه LIMIT استفاده کنید. یعنی مثلا در انتهای query ، عبارت زیر را بنویسید (برگرداندن 15 نتیجه) :

کد پی‌اچ‌پی:
LIMIT 15 

اینکه 15 نتیجه اول یا آخر از جدول باشد را هم می توانید مشخص کنید. یک query مثال (15 ردیف آخر بر اساس ترتیب column_name) :

کد پی‌اچ‌پی:
SELECT FROM table_name ORDER BY column_name DESC LIMIT 15

Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان