Autor Zpráva
Marcela
Profil *
Řeším tady takový problém, kdy hledám články, které prohlédávám jako WHERE popis LIKE %slovo%. Bohužel ale když hledám PIZZA, tak to nenajde články, kde je PIZZY. Lidé budou do vyhledávače psát spíše pizza a tak to nenajde článek, kde bude pizzy.

Jak tohle řešit? ... ořezáním posledního slova a dát pryč samohlásky? .... eventuélně jak na to?
Keeehi
Profil
http://php.vrana.cz/preklepy-ve-vyhledavani.php
skrofa
Profil *
Třeba takto docílíš oříznutí posledního písmene, ale neřeší to, zda je to samohláska či nikoliv.
$slovo_zkracene = substr($slovo_zadane, 0, (strlen($slovo_zadane))-1);


Ještě to můžeš dát do podmínky, aby to třeba ořezávalo pouze slova delší než 4 znaky, protože u těch krátkých slov by ti vyhledávání vrátilo asi hodně článků, které by s hledaným výrazem moc nesouvisely.
panther
Profil
skrofa, Marcela:
ořzávání není správná cesta... Co když bude někdo hledat o „pizzách“?
Marcela
Profil *
Mě bude stačit pouze ořezávat až v posledním slově samohlásky. Jak na toto?
Tori
Profil
Marcela:
ořezávat až v posledním slově samohlásky. Jak na toto?
rtrim s druhým parametrem, anebo preg_replace. Taky se mi to nelíbí, ale nevím poradit lepší způsob - ale třeba se vám to hodí jindy.
TomášK
Profil
LIKE není určený pro podobné účely, pokud bude článků více, bude to pomalé a zbytečně vytěžovat databázi. Správné řešení je fulltext, s ohýbáním zkušenosti nemám, ale i tom píše Jakub Vrána: http://php.vrana.cz/fulltextove-vyhledavani-sphinx.php

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: