Autor | Zpráva | ||
---|---|---|---|
Marcela Profil * |
#1 · Zasláno: 28. 4. 2011, 22:53:44
Ř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 |
#2 · Zasláno: 28. 4. 2011, 23:15:55
|
||
skrofa Profil * |
#3 · Zasláno: 28. 4. 2011, 23:18:33
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 |
#4 · Zasláno: 28. 4. 2011, 23:24:28
skrofa, Marcela:
ořzávání není správná cesta... Co když bude někdo hledat o „pizzách“? |
||
Marcela Profil * |
#5 · Zasláno: 28. 4. 2011, 23:38:53
Mě bude stačit pouze ořezávat až v posledním slově samohlásky. Jak na toto?
|
||
Tori Profil |
#6 · Zasláno: 29. 4. 2011, 00:00:20 · Upravil/a: Tori
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 |
#7 · Zasláno: 29. 4. 2011, 00:11:26 · Upravil/a: TomášK
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
|
||
Časová prodleva: 13 let
|
0