Нұсқаулықтар

Қолданбаға іздеуді қалай қосуға болады: қарапайым сүзгіден толық мәтіндік іздеуге дейін

Қолданбаға іздеуді қосу үшін ең қарапайым жұмыс істейтін нәрседен бастаңыз: серверлік маршрутты шақыратын іздеу жолағы, ол дерекқор жолдарын бірнеше бағанмен сәйкестендіру арқылы сүзеді, плюс санат немесе баға сияқты сүзгілер. Бұл жеткіліксіз болғанда — релевантты рейтинг, сөздің тамырын ажырату немесе көп жазба керек болса — дерекқордың толық мәтіндік іздеуіне өтіңіз, ал хостингтелген іздеу жүйесіне тек терімдегі қателерге күшті төзімділік немесе үлкен деректерде бірден нәтиже қажет болса ғана көшіңіз. Қандай тәсіл таңдасаңыз да, іздеу рұқсаттарды құрметтеуі керек: пайдаланушылар өздеріне рұқсаты жоқ жазбаларды ешқашан таппауы керек.

Қолданба үшін «іздеу» нені білдіреді

Іздеудің бірнеше түрі бар, көп қолданбаға оның бірнешеуі керек:

  • Кілттік сөз бойынша іздеу: мәтін жолағы — «“бақша” сөзі бар хабарламаларды табу».
  • Сүзгілер: құрылымдық таңдаулар — санат, қала, баға диапазоны, күн, күй.
  • Сұрыптау: ең жаңасы, ең арзаны, ең релевантты.
  • Автотолықтыру: терген кезде ұсыныстар.
  • Терімдегі қателерге төзімділік: «restuarant» «restaurant» сөзін де табады.

Каталог, жұмыс тақтасы немесе дүкен үшін сүзгілер көбінесе мәтін жолағынан маңыздырақ. Құралды таңдаудан бұрын нақты қайсысы керек екенін шешіңіз.

Опцияларыңыз

ТәсілҚалай жұмыс істейдіНе үшін жарайдыШектеулері
Браузерде сүзуТізімді жүктеп, JavaScript-пен сүзуШағын ашық тізімдер (бірнеше жүз элемент)Барлық деректерді әр келушіге жібереді; үлкен тізімде баяу
Дерекқордан үлгі бойынша іздеуСервер сұрауы: «атауында мәтін бар», регистрге тәуелсізШағын және орташа қолданбалар, әкімші құралдарыРейтинг жоқ; үлкен кестелерде баяулауы мүмкін; тамырлау жоқ
Дерекқордағы толық мәтіндік іздеуPostgres сөздерді индекстейді және сәйкестерді рейтингтейдіМазмұны көп көптеген қолданбаларТерімдегі қателерге әлсіз, нечеткий сәйкестендіру қоспасаңыз
Нечеткий сәйкестендіру (trigram)Postgres кейіпкер тізбектерінің ұқсастығын салыстырадыАтаулар, қысқа өрістер, терімдегі қателерге төзімділікКеңейтім мен индекс қажет; баптау уақыт алады
Хостингтелген іздеу жүйесіБөлек сервис деректеріңізді индекстейді (Algolia, Meilisearch, Typesense, Elasticsearch және басқалар)Үлкен каталогтар, бірден іздеу, күшті терім толеранттылығыДеректерді синхрондап ұстау керек, төлем және қорғау қажет

Егер деректеріңіз Postgres-те болса, оның кірістірілген толық мәтіндік іздеуі тамаша ортаңғы нұсқа. Ол мәтінді сөздерге бөледі, оларды тамырға келтіреді (сондықтан «running» «run» сөзімен сәйкес келеді), жиі кездесетін сөздерді елемейді және нәтижелерді сәйкестік сапасына қарай рейтингтей алады. Дұрыс индекспен ол үлкен кестелерде де жылдам жұмыс істейді.

Үлгі промпттар

Қарапайым бастама:

Тізімдер бетіне іздеу жолағы мен сүзгілерді қосыңыз. Іздеу сұраныс мәтінін тақырып пен сипаттамаға салыстырсын, регистрге тәуелсіз. Сүзгілер: санат (ашылмалы тізім), қала (ашылмалы тізім) және ең жоғары баға. Іздеуді серверде, беттеп бөлінетін API маршрутымен жасаңыз, бетіне 20 нәтиже. Іздеу мен сүзгілерді URL-де сақтаңыз, сонда нәтижелерді бөлісуге болады және артқа қайту батырмасы жұмыс істейді. Ештеңе табылмаса, достық бос күй көрсетіңіз.

Толық мәтіндік іздеуге жаңарту:

Тізімді іздеуді тақырыпқа (жоғары салмақпен) және сипаттамаға негізделген Postgres толық мәтіндік іздеуіне ауыстырыңыз. Дұрыс индексті қосыңыз, нәтижелерді релевантты бойынша рейтингтеңіз, бар сүзгілер мен беттеуді сақтаңыз. Бар деректерді өзгертпеңіз.

Атаулар үшін терімдегі қателерге төзімділікті қосу:

Бизнес атауы бойынша нечеткий сәйкестендіру қосыңыз, сонда шағын қателер де нәтиже табады. Мүмкін болса trigram ұқсастығын индекспен пайдаланыңыз, ал болмаса ағымдағы іздеуге қайтыңыз.

Қадам-қадаммен

  1. Адамдардың нені іздейтінін жазыңыз. Қандай өрістер (тақырып, сипаттама, тегтер, атау)? Қандай сүзгілер? Мүмкін болса, бірнеше нақты пайдаланушыдан сұраңыз.
  2. Серверден бастаңыз. Сұрауды және сүзгілерді қабылдап, нәтижелердің бір бетін қайтаратын API маршрутын қосыңыз. Барлық деректерді браузерге жүктемеңіз.
  3. Рұқсаттарды сұрауда қолданыңыз. Егер пайдаланушылар тек өз жазбаларын немесе тек жарияланғандарын көрсе, бұл шарт іздеу сияқты сұрауда болуы керек.
  4. Беттеуді бірінші күннен қосыңыз — бет нөмірлері немесе «көбірек жүктеу».
  5. Іздеу күйін URL-ге салыңыз (мысалы ?q=garden&city=leeds). Бөлісуге болатын сілтемелер, жұмыс істейтін артқа қайту батырмасы және қаласаңыз, сүзілген беттерді іздеу жүйелері индекстей алады.
  6. Жазғанда іздеуді кідіртіңіз. Әр басу үшін сұрау жібермес үшін, терім тоқтағаннан кейін бірнеше жүз миллисекунд күтіңіз.
  7. Индекстерді қосыңыз, қай бағандарды сүзетініңіз және іздейтініңізді білгеннен кейін.
  8. Жаңартыңыз: толық мәтіндік іздеу, одан кейін нечеткий сәйкестендіру, одан кейін хостингтелген жүйе — тек қарапайым қадам нақты пайдаланушыларда жұмыс істемегенде.
  9. Шынайы деректермен сынаңыз: жүздеген немесе мыңдаған жол, бос емес таңбалар, бос сұраулар, өте ұзын сұраулар, қолдайтын басқа тілдер.

Жиі кездесетін қателер

  • Бүкіл кестені браузерге жүктеу. 50 элемент үшін жақсы, 50 000 үшін азаптау, және әр жазбаны ашады — соның ішінде пайдаланушы көрмеуі керектерін де.
  • Рұқсаттарды елемейтін іздеу. Іздеу жиі ағып кетеді: жеке немесе жобалық жазба іздеу сұрауында «тек менікі» немесе «тек жарияланған» шартын ұмытқандықтан көрінеді.
  • Шикі пайдаланушы кірісінен SQL құру. Әрқашан параметрленген сұраулар қолданыңыз. ЖИ құрастырушы әдетте солай жасайды, бірақ жолдардың жабыстырылғанын көрсеңіз, тексеріңіз.
  • Бос күй жоқ. Ұсынысы бар «нәтиже жоқ» (сүзгілерді тазалаңыз, емлені тексеріңіз) адамдарды кетуден сақтайды.
  • Индекстердің болмауы. Іздеу тест деректерінде жақсы жұмыс істейді, ал нақты деректер өскен сайын баяулайды.
  • Іздеу қызметіне тым ерте көшу. Сонда деректердің екінші көшірмесін синхрондап ұстау, жоюларды өңдеу және тағы бір кілттер жиынын қорғау керек — көбінесе көрінетін пайдасыз.
  • Мобильді ұмыту. Сүзгілер телефон экранына сиюы керек; сүзгі жәшігі немесе жиылмалы панель әдетте бүйірлік панельден жақсырақ.

Тексеру тізімі

  • Қандай өрістер іздейтінін және қандай сүзгілер барын білесіз
  • Іздеу серверде жүреді және беттелген нәтижелер қайтарады
  • Сұрау қолданбаның қалған бөлігімен бірдей рұқсаттарды қолданады
  • Пайдаланушы кірісі параметр ретінде беріледі, SQL-ге жабыстырылмайды
  • Іздеу күйі URL-де сақталған
  • Терім кідіртіледі
  • Іздейтін және сүзетін бағандар индекстелген
  • Бос, нәтижесіз және қате күйлері айқын
  • Шынайы деректер көлемімен және бүлінген кірістермен сыналған

Mythex-пен іздеуді қосу

Mythex-те құрастырылған қолданбада деректер әдетте жобаның өз Postgres дерекқорында тұрады, сондықтан жоғарыдағы промпттармен бастауға болады: алдымен үлгі бойынша сәйкестендіру, рейтинг керек болғанда Postgres толық мәтіндік іздеуі. Хостингтелген іздеу жүйесін қаласаңыз, өз аккаунтыңызды және кілтіңізді пайдаланыңыз, оны жоба құпиясы ретінде сақтаңыз және агенттен оны серверден индекстеуін және сұрауын сұраңыз, Кез келген API-ді интеграциялау бөлімінде сипатталғандай.

Іздеу көптеген қолданбаның негізі: ол өнімнің қалған бөлігіне қалай сәйкес келетінін каталог сайтын қалай жасау керек, жұмыс тақтасын қалай жасау керек және маркетплейсті қалай жасау керек бөлімдерінде көре аласыз.

Сұрақтар

Қолданбаға іздеуді қосудың ең оңай жолы қандай?

Деректеріңіз дерекқорда болса, бірнеше бағанда регистрге тәуелсіз сәйкестікпен жолдарды сүзетін серверлік маршрут — ең оңай бастама. Браузерге алдын ала жүктелген шағын тізім үшін сүзуді браузерде жасау тіпті қарапайым.

Іздеу үшін Algolia немесе Elasticsearch керек пе?

Алғашқыда көбінесе жоқ. Postgres толық мәтіндік іздеуі сөздерді сәйкестендіруді, рейтингті және мыңдаған-миллиондаған жолды жақсы өңдейді. Хостингтелген іздеу жүйесі үлкен деректерде терімдегі қателерге төзімділік, жазу кезінде бірден нәтиже немесе күрделі релевантты баптау керек болғанда ғана тиімді.

Неге іздеу терімдегі қателерді таппайды?

Негізгі сәйкестендіру мен стандартты толық мәтіндік іздеу сөздерді жазылғандай (немесе олардың тамырын) іздейді, сондықтан қате жазылған сөз табылмайды. Нечеткий сәйкестендіру қажет, мысалы Postgres-тегі trigram ұқсастығы немесе терімдегі қателерге төзімді іздеу жүйесі.

Іздеу браузерде жасалуы керек пе, әлде серверде ме?

Ашық шағын тізімнен үлкенірек кез келген нәрсе үшін серверде. Серверде іздеу масштабталады, рұқсаттарды құрметтейді және барлық деректерді әр келушіге жібермейді.

Mythex · Pricing · ЖИ көмегімен кез келген нәрсені жасаңыз · Сайттар мен қосымшаларға арналған үлгілер · Mythex салыстыруда · ЖИ-мен қосымша жасау сөздігі · ЖИ-мен қосымша жасауға арналған тегін құралдар · 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 简体中文 繁體中文(香港) 繁體中文(台灣)