Voisiko joku kertoa teoriatasolla, miten toteutetaan hakukoneissa "Tarkoititko..." toiminnot? Eli käyttäjä kirjoittaa sanan "keltunen" ja kone kysyy Tarkoititko: keltainen?
Eli jos tietokannassa haetaan jotain ja se ei löydy niin kone ehdottaa jotain.
Eli jos tietokannassa haetaan jotain ja se ei löydy niin kone ehdottaa jotain.
Vastaukset 26
Vanhimmat
>...ei löydy niin kone ehdottaa jotain.
Yksinkertaisin tapaus on hakea sekä täsmähaulla että SQL:n LIKE ehdolla. Jos ei löydy oikeaa niin tarjotaan sitä mitä LIKE löysi.
>SQL:n LIKE ehdolla.
Ei toimi. Kyllä kyseessä on ns. fuzzy- haut.
>Ei toimi.
Toimii, tosin puutteellisesti.
Kysyjä uteli periaatteellista ratkaisua ja sanoin että YKSINKERTAISIMILLAAN se toimii kuin LIKE SQL:ssä.
Toki kattavampiakin löytyy.
Tossahan haetaan ensin niitä sanoja joita ei löydy vaikka suoraan sanakirjasta tai vaihtoehtosesti taivutettuina. Jos koodaisin ite jonkun simppelin systeemin, niin tekisin siihen ehotuksen sen mukaan, missä sanakirjan sanassa ois eka ja vika kirjain samat kuin ehotuksessa ja mielellään pari samaa kirjainta ainakin niiden sisällä. Pituuskaan ei sais heittää ihan kamalasti. Tommosilla säännöillä pääsis eteenpäin ihan kivasti jo ilman LIKE:ä.
Entä jos eka tai vika väärin? Menisi homma täysin pieleen.
Kokeile googleen hakua 'öaupunkb' siis kaupunki.
>...googleen hakua 'öaupunkb'...
Googlekaan ei löydä yhtään ehdotusta. :(
>...kivasti jo ilman LIKE:ä.
Mikä estää tekemästä tuota LIKE:llä? ;)
Mulla lukee:
Tarkoititko: kaupunki
Onko meillä eri google (tai eri asetukset)?
Osaako se LIKE mukamas hakea sanasta 'öaupunkb' sanaa 'kaupunki'? Mitä kantaa käytät?
Sanoin, että jos koodaisin simppelin systeemin. Jos koodaisin parempaa, niin sitten mukaan vois laittaa jotain huomiointia sille kuinka lähellä virhelyöntien näppäimet ovat toisiaan. Ja muutakin. Ksupinji olis kohtuulähellä jäädä kiinni tolla simppelilläkin systeemillä.
Voi voi jos jos sulle ei kelpaa vinkit siitä miten tommosen voi tehä.
>...LIKE mukamas hakea...
Auttaisiko esimerkki?
SELECT * FROM "paikkakunnat" WHERE "descr" LIKE '%aupunk%'
>Mitä kantaa käytät?
Ihan mitä tahansa SQL-kantaa.
Kannattaakohan kinastelua jatkaa jos näinkin perusasiat tuottavat vaikeuksia? ;)
Etkö sinä pelle ymmärrä että alkuperäinen kysyi kuinka hakutoiminto toteutetaan teoriassa ja sinä urpo vastaat täysin päin helvettiä. Sitä hakua ei toteuteta 'vinkkisi' mukaan, eikä sinun 'idealla' saa aikaiseksi edes välttävää toteutusta.
On erittäin perseestä antaa 'vinkkejä', joissa ongelmaa lähdetään ratkaisemaan täysin väärään suuntaan.
Lue tuo google-hemmon juttu ja MYÖNNÄ että vinkkisi oli SURKEA.
Meinaakkos, että näissä jutuissa pitäs pysyä tiukasti niissä raameissa mitä eka juttelija keksi antaa?
Varmaan oot murheen murtama jos joku ottaa esille LIKE:n tai jonkun muun jutun joka ei oo täsmällinen vastaus esmes kooklen tapaan, mutta hei, asioita voi kattoa monelta kantilta.
"Meinaakkos, että näissä jutuissa pitäs pysyä tiukasti niissä raameissa mitä eka juttelija keksi antaa?"
Ei pidä, mutta pitää esittää jotain toimivaa, ja jos vahingossa laittaa jotain sontaa niin voi sen myös MYÖNTÄÄ.
"Varmaan oot murheen murtama jos joku ottaa esille LIKE:n tai jonkun muun jutun joka ei oo täsmällinen vastaus esmes kooklen tapaan, mutta hei, asioita voi kattoa monelta kantilta."
Niin, tiedän kyllä että asioita voi (ja pitää) katsoa monelta kantilta ja ratkaisuyritykset voi jakaa niihin jotka toimivat ja päin helvettiä tehtyihin. Toimivia ratkaisuja voi olla nolla kpl (ratkeamaton tai ratkaisua ei tunneta), muutama eritapainen ratkaisu ja ääretön määrä toimimattomia räpellyksiä.
Miksi et myönnä että vinkkisi on päin helvettiä? (Eihän se osaisi edes yhden virhelyönnin syötettä 'idiootto' => Tarkoititko idiootti?)
Siltä vähän kuulostaa tommonen asenne.
Jos et oo ikinä huomannut, niin moni ratkasumalli voi koostua hyvinkin monesta erilaisesta keinosta tehdä hommat. Ei nyt sunkaan kannata vedellä pullanpaloja nenääs jos joku esittää yhen tavan niistä monista. Vieläpä semmosen tavan joka toimii ihmisiin aika hyvin vaikka ei tietysti ainoo ookkaan. Kun ymmärtää sen miten oma pää toimii, voi yrittää ymmärtää alkoritmeja.
Sinä et siis ymmärrä että ratkaisumallisi on ruma, huonosti toimiva ja VÄÄRIN toimiva. Se tarkoittaa että olet helvetin HUONO koodari, siis idiootti tai aloittelija.
On aivan käsittämätöntä että et tajua kuinka PASKA ratkaisuyrityksesi on, sokaiseeko oma 'suuri' idea järjen valon? (Oma paska ei pahalta haise - Wanha viidakon sanonta)
Ottaakos tää sulla oikeesti päähän kun joku kertoo asioista eri tavalla kun sä olet oppinut tekemään?
Kyse oli sanasta 'öaupunkb'. Käytät like-haussasi sanaa 'aupunk', joka tietenkin toimii - älä nyt hölmöile siellä.
Eli toistan kysymyksen:
Miten saat like- haulla sanasta 'öaupunkb' palautumaan 'kaupunki'?
>...älä nyt hölmöile siellä.
OK!
>... Käytät like-haussasi sanaa 'aupunk'...
Enhän käytä vaan '%aupunk%' joka löytää esim sanat pääkaupunki, pikkukaupunki, kaupunkilainen, jne.
Eksakti haku tietysti löytää vain 'öaupunkb', muuten se on rikki. Joten eikö se ole vain "triggeri" mikä käynnistää jatkotoimet vai meinaatko että käyttäjä on aina väärässä ja selvästi hitaampaa sumeaa hakua käytetään jokatapauksessa? Saattaa tulla käyttäjiltä vähän palautetta.
Anna nyt siis tarkka määritelmä mitä saa tehdä eksaktin haun lisäksi? ;)
Ei tietenkään ota päähän, jos kerrotaan erilaisia TOIMIVIA ratkaisuja, mutta kun joku pelle säheltää TOIMIMATTOMIA räpellyksiä (eikä edes tajua että ne ei toimi), niin se oikeasti ottaa hieman päähän.
Ajattele kuinka hölmöä olisi, jos jossain matikkapalstalla joku antaisi VÄÄRÄN kaavan (esim. 2.asteen yhtälön ratkaisuun) 'vinkkinä' ja perusteluna olisi 'tää on vaan erilainen ratkaisu ja siksi hieno'.
Erilainen ratkaisu on usein hieno juttu, mutta sen pitää olla myös TOIMIVA. Erilaisia ja ei-toimivia koodeja osaa kirjoittaa apinatkin (kirjaimellisesti).
Etkös osannu sada koitettuun tota toimiin´? Va jäiks epäselväksi, että kooklemallinen siitä tulee vasta kun mukaan otetaan monta muuta vastaavaa ratkasuu?
Ai lisää monta yhtä paskaa eli vastaavaa ratkaisua? Näinhän niistä ohjelmista saadaan tosi mahtavia. "Laittakaa siihen lisää paskaa, niin hyvä tulee!"
Taijat olla vähän nuorehko kaveri jutuista päätellen.
Sua ei ainakaan liiallisesta hermojen hallinasta voi syyttää.
Google-hemmon yksinkertaistettu selitys:
http://www.norvig.com/spell-correct.html
Hmm... pitänee itsekin lukea toi huolella.
hienoa!