Jobb helyet nem találván ide irok.
Saját szabad szavas keresőt kell irnom, addig eljutottam, hogy a mysql full text search -e elég normális eredményeket ad, viszont most megváltozott a feladat kicsit. A felahsználóim módosíthatják a saját magukról szóló lapokat, és ezek alapján kell megjelenitenem, a kapott emberkeet. Értelemszerüen, minél inkább elől van valaki a listában annál jobb neki.
Viszont a full text search nagyon könnyen befolyásolható bizonyos kulcs szavakra, igy az iránt érdeklődnék, hogy van -e valakinek valami öttlete arra, hogy hogyan lehet kevésbé átverhető motort irni.
- addig eljutottam, hogy a minden szót csak egyszer rakok bele a full text search mezőbe.
További ötletek, google link, tanáncs bármi jöhet.
- 1161 megtekintés
Hozzászólások
Én az mnogosearch motort javaslom. Képes egy adott site-ot leindexelni, de rá lehet venni, hogy egy adatbázis tábla megadott elemeit indexelje.
Külső parser-ral lehetőség van doc,pdf stb indexelésére is.
A kereső felület, amit adnak hozzá (cgi) elég barátságos.
A mysql.com is ezt a motort használja.
- A hozzászóláshoz be kell jelentkezni
Én ilyet nem sqlben tökéletesítettem, hanem kódban. SQL-be lement LIKE-kal az összes kulcsszó, pontosabban regexppel, hogy az ékezeteketre se legyen érzékeny, a kapott lehetséges rekordok közül meg kódban válogattam, magam pontoztam, mennyit jelent, ha 1-nél többször fordul elő ugyanaz az 1 kulcsszó, az egyenlő pontszámokat dátum szerint rendeztem, stb.
- A hozzászóláshoz be kell jelentkezni
Egy letezo megoldas:
rendszeres idokozonkent vegigtekersz az adatbazison es az osszes szot eltarolod egy tablaba, mellette az ot tartalmazo sor/akarmi ID-ja. Keresesnel select a keresotablaban, az ID-hoz azonnal tudod joinolni a tobbi tablat a tartalommal.
Ha egy szo tobb ID alatt is szerepel, akkor a szo annyiszor lesz a keresotablaban kulonbozo ID mellett, ahany ID van.
Erezheto ido alatt fog lefutni az indexelo, de gyorsabb lesz mint a fulltext search, foleg baaazi nagy adathalmaznal es azt tarolod el, amiben kersni akarsz, nem kell minden egyes kereseskor varazsolni.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni