گائیڈز

اپنی ایپ میں سرچ کیسے شامل کریں: سادہ فلٹرز سے مکمل ٹیکسٹ سرچ تک

ایپ میں سرچ شامل کرنے کے لیے سب سے سادہ کام کرنے والے طریقے سے شروع کریں: ایک سرچ باکس جو ایک سرور راستے کو کال کرے، جو آپ کے ڈیٹا بیس کی قطاروں کو چند کالمز کے خلاف مماثلت سے فلٹر کرے، ساتھ ہی زمرے یا قیمت جیسے فلٹرز۔ جب یہ کافی نہ ہو، یعنی آپ کو درجہ بندی، الفاظ کی جڑ تلاش، یا بہت زیادہ ریکارڈز چاہئیں، تو اپنے ڈیٹا بیس کی full-text سرچ پر جائیں، اور ہوسٹڈ سرچ انجن کی طرف تب ہی جائیں جب آپ کو مضبوط ٹائپو برداشت یا بہت بڑے ڈیٹا پر فوری نتائج چاہئیں۔ جو بھی چنیں، سرچ کو اجازتوں کا احترام کرنا ہوگا: صارفین کو کبھی وہ ریکارڈز نہیں ملنے چاہئیں جو وہ دیکھنے کے مجاز نہیں۔

آپ کی ایپ کے لیے "سرچ" کا مطلب

سرچ کئی مختلف چیزوں کو ڈھانپتی ہے، اور زیادہ تر ایپس کو ایک سے زیادہ کی ضرورت ہوتی ہے:

  • کلیدی الفاظ کی سرچ: ایک متن کا باکس، جیسے "'garden' کا ذکر کرنے والی لسٹنگز ڈھونڈیں"۔
  • فلٹرز: ساختی انتخاب، جیسے زمرہ، شہر، قیمت کی حد، تاریخ، یا اسٹیٹس۔
  • ترتیب: نیا ترین، سب سے سستا، یا سب سے متعلقہ۔
  • خودکار تکمیل: ٹائپ کرتے ہوئے تجاویز۔
  • ٹائپو برداشت: "restuarant" پھر بھی "restaurant" ڈھونڈ لے۔

ڈائریکٹری، جاب بورڈ یا اسٹور کے لیے، اکثر فلٹرز متن والے باکس سے زیادہ اہم ہوتے ہیں۔ کوئی ٹول چننے سے پہلے طے کریں کہ آپ کو ان میں سے کون سے واقعی چاہئیں۔

آپ کے اختیارات

طریقہکیسے کام کرتا ہےکس کے لیے بہترحدود
براؤزر میں فلٹرفہرست لوڈ کریں، JavaScript میں فلٹر کریںچھوٹی عوامی فہرستیں (چند سو آئٹمز)ہر وزیٹر کو سارا ڈیٹا بھیجتا ہے؛ بڑی فہرستوں میں سست
ڈیٹا بیس میں پیٹرن مماثلتسرور کوئری جیسے "نام میں یہ متن ہو"، حروف کے فرق کے بغیرچھوٹی سے درمیانی ایپس، ایڈمن ٹولزدرجہ بندی نہیں؛ بڑے ٹیبلز پر سست ہو سکتا ہے؛ جڑ تلاش نہیں
ڈیٹا بیس full-text سرچPostgres الفاظ کو انڈیکس کرتا ہے اور مماثلتوں کی درجہ بندی کرتا ہےزیادہ تر مواد پر مبنی ایپسٹائپو میں کمزور، جب تک fuzzy matching شامل نہ ہو
Fuzzy matching (trigrams)Postgres حروف کی ترتیب کا مماثلت کے لیے موازنہ کرتا ہےنام، مختصر فیلڈز، ٹائپو برداشتایکسٹینشن اور انڈیکس درکار؛ ٹیوننگ میں وقت لگتا ہے
ہوسٹڈ سرچ انجنایک الگ سروس آپ کا ڈیٹا انڈیکس کرتی ہے (Algolia، Meilisearch، Typesense، Elasticsearch اور دیگر)بڑے کیٹلاگز، فوری سرچ، مضبوط ٹائپو برداشتایک اور سروس جسے ہم آہنگ رکھنا، ادائیگی کرنا اور محفوظ کرنا ہوتا ہے

اگر آپ کا ڈیٹا پہلے ہی Postgres میں ہے تو اس کی بلٹ اِن full-text سرچ ایک مضبوط درمیانی راہ ہے۔ یہ متن کو الفاظ میں توڑتی ہے، انہیں جڑ تک لاتی ہے (تاکہ "running" کا "run" سے ملاپ ہو)، عام الفاظ کو نظر انداز کرتی ہے، اور نتائج کو مماثلت کے معیار کے مطابق درجہ دے سکتی ہے۔ درست انڈیکس کے ساتھ یہ بڑے ٹیبلز پر بھی تیز رہتی ہے۔

مثال کے پرامپٹس

ایک سادہ آغاز:

لسٹنگز والے صفحے پر ایک سرچ باکس اور فلٹرز شامل کریں۔ سرچ کو عنوان اور تفصیل کے خلاف، حروف کے فرق کے بغیر، مماثل ہونا چاہیے۔ فلٹرز: زمرہ (ڈراپ ڈاؤن)، شہر (ڈراپ ڈاؤن) اور زیادہ سے زیادہ قیمت۔ سرچ سرور پر، صفحہ بندی والے API راستے کے ساتھ کریں، فی صفحہ 20 نتائج۔ سرچ اور فلٹرز URL میں رکھیں تاکہ نتائج شیئر ہو سکیں اور بیک بٹن کام کرے۔ جب کچھ نہ ملے تو ایک دوستانہ خالی حالت دکھائیں۔

پوری ٹیکسٹ سرچ پر اپ گریڈ کرنا:

لسٹنگ سرچ کو Postgres full-text سرچ پر منتقل کریں، عنوان (زیادہ وزن کے ساتھ) اور تفصیل پر۔ درست انڈیکس شامل کریں، نتائج کو متعلقہ ہونے کے مطابق درجہ دیں، اور موجودہ فلٹرز اور صفحہ بندی برقرار رکھیں۔ کوئی موجودہ ڈیٹا تبدیل نہ کریں۔

ناموں کے لیے ٹائپو برداشت شامل کرنا:

کاروبار کے نام پر fuzzy matching شامل کریں تاکہ چھوٹی غلطیاں بھی نتائج دے سکیں۔ اگر دستیاب ہو تو انڈیکس کے ساتھ trigram similarity استعمال کریں، اور اگر نہ ہو تو موجودہ سرچ پر واپس جائیں۔

مرحلہ وار طریقہ

  1. فہرست بنائیں کہ لوگ کیا تلاش کرتے ہیں۔ کون سے فیلڈز (عنوان، تفصیل، ٹیگز، نام)؟ کون سے فلٹرز؟ اگر ممکن ہو تو چند حقیقی صارفین سے پوچھیں۔
  2. سرور سے شروع کریں۔ ایک API راستہ شامل کریں جو سوال اور فلٹرز لے اور نتائج کا ایک صفحہ واپس کرے۔ پورا ڈیٹا براؤزر میں نہ لوڈ کریں۔
  3. کوئری میں اجازتیں لاگو کریں۔ اگر صارفین صرف اپنے ریکارڈز یا صرف شائع شدہ ریکارڈز دیکھتے ہیں، تو وہ شرط سرچ والی اسی کوئری میں ہونی چاہیے۔
  4. پہلے دن سے صفحہ بندی شامل کریں، یعنی صفحہ نمبر یا "مزید لوڈ کریں"۔
  5. سرچ کی حالت URL میں رکھیں (مثلاً ?q=garden&city=leeds)۔ قابلِ شیئر لنکس، کام کرنے والا بیک بٹن، اور سرچ انجن اگر آپ چاہیں تو فلٹر شدہ صفحات کو کرال کر سکتے ہیں۔
  6. ٹائپ کرتے ہوئے سرچ کو ڈی باؤنس کریں۔ ٹائپ بند ہونے کے چند سو ملی سیکنڈ بعد کوئری کریں، تاکہ ہر کی اسٹروک پر درخواست نہ جائے۔
  7. جب آپ کو معلوم ہو کہ کن کالمز پر فلٹر اور سرچ ہوتی ہے، تو انڈیکس شامل کریں۔
  8. اپ گریڈ کریں: پہلے full-text سرچ، پھر fuzzy matching، پھر ہوسٹڈ انجن، لیکن صرف تب جب سادہ مرحلہ حقیقی صارفین کے لیے کام نہ کرے۔
  9. جانچیں حقیقی جیسے ڈیٹا کے ساتھ: سینکڑوں یا ہزاروں قطاریں، عجیب حروف، خالی سوالات، بہت لمبے سوالات، اور اگر آپ سپورٹ کرتے ہیں تو دیگر زبانیں۔

عام غلطیاں

  • پوری ٹیبل براؤزر میں لوڈ کرنا۔ 50 آئٹمز کے لیے ٹھیک ہے، 50,000 کے لیے تکلیف دہ ہے، اور یہ ہر ریکارڈ ظاہر کر دیتا ہے، ان ریکارڈز سمیت جنہیں صارف کو نہیں دیکھنا چاہیے۔
  • ایسی سرچ جو اجازتوں کو نظر انداز کرے۔ سرچ ایک عام رساؤ ہے: کوئی نجی یا ڈرافٹ ریکارڈ اس لیے ظاہر ہو جاتا ہے کیونکہ سرچ کوئری میں "صرف میرے" یا "صرف شائع شدہ" کی شرط بھول گئی۔
  • صارف کے ان پٹ سے براہ راست SQL بنانا۔ ہمیشہ پیرامیٹرائزڈ کوئریاں استعمال کریں۔ AI بلڈر عموماً ایسا ہی کرتا ہے، لیکن اگر آپ کو سٹرنگز جوڑی جاتی نظر آئیں تو چیک کریں۔
  • خالی حالت نہ ہونا۔ "کوئی نتیجہ نہیں" کے ساتھ ایک مشورہ (فلٹرز صاف کریں، ہجے چیک کریں) لوگوں کو جانے سے روکتا ہے۔
  • انڈیکس نہ ہونا۔ ٹیسٹ ڈیٹا کے ساتھ سرچ ٹھیک لگتی ہے اور حقیقی ڈیٹا بڑھنے کے ساتھ سست ہو جاتی ہے۔
  • فوراً سرچ سروس کی طرف جانا۔ پھر آپ کو اپنے ڈیٹا کی دوسری کاپی ہم آہنگ رکھنی، حذف ہونے والے ریکارڈز سنبھالنے، اور کیز کا ایک اور سیٹ محفوظ کرنا پڑتا ہے، اکثر بغیر کسی نظر آنے والے فائدے کے۔
  • موبائل کو بھول جانا۔ فلٹرز کو فون پر فٹ ہونا چاہیے؛ فلٹر دراز یا قابلِ تہہ پینل عموماً سائیڈ بار سے بہتر کام کرتا ہے۔

چیک لسٹ

  • آپ جانتے ہیں کون سے فیلڈز سرچ ہوتے ہیں اور کون سے فلٹرز موجود ہیں
  • سرچ سرور پر چلتی ہے اور صفحہ بند نتائج واپس کرتی ہے
  • کوئری وہی اجازتیں لاگو کرتی ہے جو ایپ کے باقی حصوں میں ہیں
  • صارف کا ان پٹ پیرامیٹرز کے طور پر جاتا ہے، کبھی SQL میں جوڑا نہیں جاتا
  • سرچ کی حالت URL میں رہتی ہے
  • ٹائپنگ ڈی باؤنس ہے
  • سرچ اور فلٹر ہونے والے کالمز انڈیکس شدہ ہیں
  • خالی، کوئی نتیجہ نہ ہونے، اور ایرر کی حالتیں واضح ہیں
  • حقیقی ڈیٹا حجم اور گندے ان پٹ کے ساتھ جانچا گیا

Mythex کے ساتھ سرچ شامل کرنا

Mythex پر بنائی گئی ایپ میں ڈیٹا عموماً پروجیکٹ کے اپنے Postgres ڈیٹا بیس میں ہوتا ہے، اس لیے آپ اوپر کے پرامپٹس سے شروع کر سکتے ہیں: پہلے پیٹرن مماثلت، پھر درجہ بندی کے لیے Postgres full-text سرچ۔ اگر آپ ہوسٹڈ سرچ انجن چاہتے ہیں تو اپنا اکاؤنٹ اور key لائیں، اسے پروجیکٹ secret کے طور پر محفوظ کریں، اور ایجنٹ سے کہیں کہ اسے سرور سے انڈیکس اور کوئری کرے، جیسا کہ Integrate any API میں بیان ہے۔

سرچ کئی ایپس کا مرکز ہے: دیکھیں ڈائریکٹری ویب سائٹ کیسے بنائیں، جاب بورڈ کیسے بنائیں اور مارکیٹ پلیس کیسے بنائیں کہ یہ باقی پروڈکٹ میں کیسے فٹ ہوتی ہے۔

سوالات

ایپ میں سرچ شامل کرنے کا سب سے آسان طریقہ کیا ہے؟

اگر آپ کا ڈیٹا ڈیٹا بیس میں ہے تو ایک سرور راستہ جو چند کالمز پر بغیر حروف کے فرق والے (case-insensitive) مماثلت سے قطاریں فلٹر کرے، شروع کرنے کا سب سے آسان طریقہ ہے۔ کسی چھوٹی فہرست کے لیے جو پہلے ہی براؤزر میں لوڈ ہو، براؤزر میں فلٹر کرنا اور بھی سادہ ہے۔

کیا سرچ کے لیے مجھے Algolia یا Elasticsearch کی ضرورت ہے؟

عام طور پر ابتدا میں نہیں۔ Postgres کی full-text سرچ لفظوں کی مماثلت، درجہ بندی، اور ہزاروں سے لاکھوں قطاروں کو اچھی طرح سنبھالتی ہے۔ ایک ہوسٹڈ سرچ انجن تب فائدے مند ہوتا ہے جب آپ کو مضبوط ٹائپو برداشت، ٹائپ کرتے ہی فوری نتائج بڑے ڈیٹا پر، یا جدید مطابقت کی ترتیب درکار ہو۔

میری سرچ ٹائپو والے الفاظ کیوں نہیں ڈھونڈتی؟

بنیادی مماثلت اور معیاری full-text سرچ الفاظ کو جیسے لکھے گئے ہوں (یا ان کی جڑ کو) تلاش کرتی ہے، اس لیے غلط ہجے سے مماثلت نہیں ہوتی۔ آپ کو fuzzy matching چاہیے، جیسے Postgres میں trigram similarity، یا ایک ایسا سرچ انجن جو ٹائپو برداشت کرے۔

سرچ براؤزر میں ہونی چاہیے یا سرور پر؟

کسی بڑی عوامی فہرست کے لیے سرور پر۔ سرور پر سرچ پیمانے پر چلتی ہے، اجازتوں کا احترام کرتی ہے، اور ہر وزیٹر کو پورا ڈیٹا سیٹ نہیں بھیجتی۔

Mythex · Pricing · AI کے ساتھ کچھ بھی بنائیں · ویب سائٹ اور ایپ ٹیمپلیٹس · Mythex کا موازنہ · AI سے ایپ بنانے کی اصطلاحات · AI سے ایپ بنانے کے مفت ٹولز · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)