Hei!
Pitäs tehä omille sivuille semmonen haku juttu, et se ettii tietoo haku.txt filusta. Osaan kyl tehä semmosen, et jos hakee sanalla MOI, niin sit filussa olevat moi sanat ja linkit tulostetaan, mut haluisin semmosen, et jos hakee vaikka sanalla Photoshop, niin myös sanat photo ja shop ja niitten linkit löytyisivät. Onko mitään hyviä neuvoja? :)
Jahas, kuulostaa regexp jutuilta joissa en todellakaan ole mikään haka. Eli PHP:ssä esim. preg_match_all funktiolla voit regexpejä käyttää. Lisätietoa:
https://www.php.net/manual/fi/function.preg-match-all.php
http://www.awot.fi/sf/browser/showfile?cust=awdoc&subdir=regexp&doc=regexp
http://weitz.de/regex-coach/
Arvaa miksi google ei tue tätä toimintoa? Koska tämä on käytännössä mahdoton toteuttaa. Voit toki luoda luettelon erikoissanoista ja niiden hajonnasta, mutta lupaan ja vannon että et jaksa ylläpitää sitä enää 200 erikoissanan jälkeen.
Ohjeista käyttäjät käyttämään muotoa photo+shop joka hakee photoshop, photo ja shop-sivut.
Jos nyt haluat kuitenkin ylläpitää hakusanaluetteloa, voisi se olla vaikka:
<?php $erikoishakusanat = array ( "photoshop" => "photo shop", "eripari" => "eri pari", "jokatoinen" => "joka toinen", ); if (isset($erikoishakusanat[strtolower($_GET['hakusana'])])) { $hakusana = $erikoishakusanat[strtolower($_GET['hakusana'])]; } else { $hakusana = $_GET['hakusana']; } ?>
Täh? Mikset vaan voi hakea sanoja "photo" ja "shop" erikseen?
Miksi pitää tehdä joku tekoäly joka ymmärtää miten yhdyssanat toimivat :E
Joo jos kaikki kävijät haluu hakee photoshoppia nii vois ehkä toimii :EEEEEEEE Muta tarkotan ihan semmosta laajaa juttuu... Niinku täällä putkassa. Hain sanalla php ja sain 50 hakutulosta... alin oli Yleinen keskustelu: Joulutodistukset.. tuon tyylistä et se näyttää myös niinku vähän sanan vierestä tai niitä jotka liippaa läheltä.
ai :D Kiitos... en ees aatellu et se olis nui helppo :D
Sitten voit myös tehdä niin, että erotat hakusanat välilyöntien perusteella ja tulostat sivut, joissa kaikki yksittäiset sanat ovat jossain kohden. Tämä muistuttaa Googlen toimintaa.
Voit käyttää php:n similar_text-funktiota apuna korjaamaan hakusanoissa olevia kirjoitusvirheitä tai muutoin lähelle hakusanaa osuvia sanoja.
Tuon funktion käyttämisen järkevyys riippuu tietysti hyvin paljon siitä mitä haetaan. Isojen tekstimassojen kanssa hausta tullee aika hidasta.
Teknisesti tämä kannattaa toteuttaa kuten Antti edellisessä viestissä kertoi. Eli luetaan kaikki sanat taulukkoon, ja käydään silmukassa sana kerrallaan läpi ja tarkistetaan kuinka hyvin se täsmää annetun hakusanan kanssa. Luonnollisesti pelkkä välilöynneillä erottelu ei välttämättä riitä, vaan kannattaa poistaa regepseillä kaikki paitsi kirjaimet vertailtavista sanoista. Tai jos se muodostuu liian hitaaksi tuon muutenkin tehoja vaativan operaation ohella, niin sitten voi vaikka str_replacella parsia pois edes yleisimmät väli- ja erikoismerkit.
Aihe on jo aika vanha, joten et voi enää vastata siihen.