Hvernig bætir þú leit við appið þitt: frá einföldum síum yfir í leit í öllum texta
Til að bæta leit við appið þitt skaltu byrja á því einfaldasta sem virkar: leitarreit sem kallar á þjónustuleið, sem síar gagnagrunnslínur með því að bera fyrirspurnina saman við nokkra dálka, auk sía fyrir hluti eins og flokk eða verð. Þegar það dugar ekki, til dæmis þegar þú þarft röðun eftir mikilvægi, stofnun orða eða mikið magn skráa, skiptu yfir í leit í texta gagnagrunnsins þíns, og farðu aðeins í hýsta leitarvél ef þú þarft sterkt umburðarlyndi fyrir villum eða augnabliksniðurstöður á stórum gögnum. Hvað sem þú velur verður leit að virða heimildir: notendur mega aldrei finna skrár sem þeir mega ekki sjá.
Hvað „leit“ þýðir fyrir appið þitt
Leit nær yfir nokkra ólíka hluti og flest öpp þurfa fleiri en einn:
- Leitarorð: textareitur, til dæmis „finna skráningar sem nefna „garður““.
- Síur: skipulögð val, til dæmis flokkur, borg, verðbil, dagsetning eða staða.
- Röðun: nýjast, ódýrast, mikilvægast.
- Sjálfvirk útfylling: tillögur meðan skrifað er.
- Umburðarlyndi fyrir villum: „restuarant“ finnur samt „restaurant“.
Fyrir skráasafn, atvinnuauglýsingar eða verslun skipta síurnar oft meira máli en textareiturinn. Ákveddu hvað þú þarft í raun áður en þú velur verkfæri.
Valkostir
| Aðferð | Hvernig hún virkar | Hentar fyrir | Takmarkanir |
|---|---|---|---|
| Sía í vafranum | Hleður listanum og síar hann í JavaScript | Litla opinbera lista (nokkur hundruð atriði) | Sendir öll gögn til hvers gests; hægt með stórum listum |
| Samsvörun í gagnagrunni | Fyrirspurn á netþjóni eins og „nafnið inniheldur textann“, óháð hástöfum | Lítil til meðalstór öpp, stjórnunartól | Engin röðun; getur verið hægt á stórum töflum; engin stofnun |
| Leit í texta í gagnagrunni | Postgres indexar orð og raðar samsvörunum | Flest öpp með mikið efni | Veik gegn villum nema bætt sé við óljósri samsvörun |
| Óljós samsvörun (þríbókstafir) | Postgres ber saman stafaraðir til að meta líkindi | Nöfn, stuttir reitir, umburðarlyndi fyrir villum | Krefst viðbótar og vísis; stillingar taka tíma |
| Hýst leitarvél | Sérstök þjónusta skráir gögnin þín (Algolia, Meilisearch, Typesense, Elasticsearch og fleiri) | Stór söfn, augnabliksleit, mikið umburðarlyndi fyrir villum | Önnur þjónusta sem þarf að halda í samstillingu, borga fyrir og tryggja |
Ef gögnin þín eru þegar í Postgres er innbyggð leit í texta þar sterk millileið. Hún brýtur texta í orð, færir þau í stofna (þannig að „running“ finnur „run“), sleppir algengum orðum og getur raðað niðurstöðum eftir því hversu vel þær samsvara. Með réttum vísi helst hún hröð á stórum töflum.
Dæmi um fyrirmæli
Einföld byrjun:
Bættu við leitarreit og síum á listasíðuna. Leitin á að bera fyrirspurnina saman við titil og lýsingu, óháð hástöfum. Síur: flokkur (fellilisti), borg (fellilisti) og hámarksverð. Framkvæmdu leitina á netþjóninum með síðuskiptri API-leið, 20 niðurstöður á síðu. Haltu leitinni og síunum í slóðinni svo hægt sé að deila niðurstöðum og bakhnappurinn virki. Sýndu vingjarnlegt tómt ástand þegar ekkert passar.
Uppfærsla yfir í leit í texta:
Skiptu leit á skráningum yfir í leit í texta Postgres á titli (vegin hærra) og lýsingu. Bættu við réttum vísi, raðaðu niðurstöðum eftir mikilvægi og haltu núverandi síum og síðuskiptingu. Ekki breyta neinum núverandi gögnum.
Umburðarlyndi fyrir villum í nöfnum:
Bættu við óljósri samsvörun á nafni fyrirtækis svo litlar villur finni samt niðurstöður. Notaðu líkindi í þríbókstöfum ef þau eru til staðar, með vísi, og falla aftur á núverandi leit ef ekki.
Skref fyrir skref
- Skráðu hvað fólk leitar að. Hvaða reitir (titill, lýsing, merki, nafn)? Hvaða síur? Spurðu nokkra raunverulega notendur ef þú getur.
- Byrjaðu á netþjóninum. Bættu við API-leið sem tekur fyrirspurnina og síurnar og skilar einni síðu af niðurstöðum. Hlaðið aldrei öllu í vafrann.
- Beittu heimildum í fyrirspurninni. Ef notendur sjá aðeins sínar skrár, eða aðeins birtar, á það skilyrði heima í sömu fyrirspurn og leitin.
- Bættu við síðuskiptingu strax í upphafi, með síðunúmerum eða „hlaða meira“.
- Hafðu leitarstöðuna í slóðinni (til dæmis
?q=garden&city=leeds). Deilanlegir tenglar, bakhnappurinn virkar og leitarvélar geta skriðið síaðar síður ef þú vilt að þær finnist. - Seinkaðu leitinni meðan á innslætti stendur. Bíddu nokkur hundruð millisekúndur eftir að hætt er að skrifa áður en leitað er, svo ekki sé send beiðni fyrir hvern ásláttarstaf.
- Bættu við vísum þegar þú veist hvaða dálka þú síar og leitar í.
- Uppfærðu í leit í texta, síðan óljósa samsvörun, síðan hýsta leitarvél, en aðeins þegar einfaldara skrefið bregst raunverulegum notendum.
- Prófaðu með raunsæislegum gögnum: hundruðum eða þúsundum lína, sérstökum stöfum, tómum fyrirspurnum, mjög löngum fyrirspurnum og öðrum tungumálum ef þú styður þau.
Algeng mistök
- Að hlaða allri töflunni í vafrann. Fínt fyrir 50 atriði, sársaukafullt fyrir 50.000, og það opinberar hverja skrá, líka þær sem notandinn á ekki að sjá.
- Leit sem hunsar heimildir. Leit er algengur leki: einkaskrá eða drög birtast því fyrirspurnin gleymdi skilyrðinu „aðeins mínar“ eða „aðeins birtar“.
- Að búa til SQL úr hráu inntaki notanda. Notaðu alltaf breytur með færibreytum. Gervigreindarsmiðir gera það venjulega, en athugaðu ef þú sérð strengi límda saman.
- Ekkert tómt ástand. „Engar niðurstöður“ með tillögu (hreinsa síur, athuga stafsetningu) heldur fólki frá því að fara.
- Engir vísar. Leit virðist í lagi með prófunargögn og hægist eftir því sem raunveruleg gögn stækka.
- Stökk beint yfir í leitarþjónustu. Þá þarftu að halda öðru afriti gagnanna í samstillingu, meðhöndla eyðingar og tryggja annað sett af lyklum, oft án sýnilegs ávinnings.
- Gleymt farsímanum. Síur þurfa að passa í síma; skúffa eða samfellanlegt spjald með síum virkar yfirleitt betur en hliðarstika.
Gátlisti
- Þú veist hvaða reitir eru leitaðir og hvaða síur eru til
- Leit keyrir á netþjóninum og skilar síðuskiptum niðurstöðum
- Fyrirspurnin framfylgir sömu heimildum og restin af appinu
- Inntak notanda er sent sem færibreytur, aldrei límt inn í SQL
- Leitarstaðan er í slóðinni
- Innslátturinn er seinkaður
- Leitaðir og síaðir dálkar eru með vísi
- Tóm, engin-niðurstöðu- og villuástand eru skýr
- Prófað með raunsæislegu gagnamagni og óhreinu inntaki
Leit með Mythex
Í appi sem er smíðað á Mythex lifa gögnin yfirleitt í Postgres-gagnagrunni verkefnisins, svo þú getur byrjað með fyrirmælunum hér að ofan: samsvörun með mynstri fyrst, síðan leit í texta í Postgres þegar þú þarft röðun. Ef þú vilt hýsta leitarvél kemur þú með þinn eigin reikning og lykil, geymir hann sem leyndarmál verkefnisins og biður aðstoðarmanninn um að skrá og fletta upp á netþjóninum, eins og lýst er í Tengdu hvaða API sem er.
Leit er kjarninn í mörgum öppum: sjá hvernig býrð þú til skráasafnsvefsíðu, hvernig býrð þú til atvinnuauglýsingavef og hvernig býrð þú til markaðstorg til að sjá hvernig hún passar inn í restina af vörunni.
Spurningar
Hver er auðveldasta leiðin til að bæta leit við app?
Ef gögnin þín eru í gagnagrunni er auðveldasta byrjunin þjónustuleið sem síar línur með hástafaónæmri samsvörun á nokkrum dálkum. Fyrir lítinn lista sem þegar er hlaðinn í vafrann er enn einfaldara að sía í vafranum.
Þarf ég Algolia eða Elasticsearch fyrir leit?
Venjulega ekki í fyrstu. Leit í texta í Postgres ræður vel við orðasamsvörun, röðun og þúsundir til milljónir lína. Hýst leitarvél er þess virði þegar þú þarft sterkt umburðarlyndi fyrir villum, augnabliksniðurstöður þegar fólk skrifar á stórum gögnum, eða háþróaða stillingu á mikilvægi niðurstaðna.
Af hverju finnur leitin mín ekki niðurstöður þegar stafsett er vitlaust?
Einföld samsvörun og venjuleg leit í texta leita að orðunum eins og þau eru slegin inn (eða stofnum þeirra), svo stafsetningarvilla finnst ekki. Þú þarft óljósa samsvörun, til dæmis þríbókstafalíkindi (trigram) í Postgres eða leitarvél sem þolir villur.
Ætti leit að keyra í vafranum eða á netþjóninum?
Á netþjóninum fyrir allt annað en lítinn opinberan lista. Leit á netþjóni skalar, virðir heimildir og sendir ekki allt gagnasafnið þitt til sérhvers gests.