Autor | Zpráva | ||
---|---|---|---|
fuckin Profil |
#1 · Zasláno: 15. 8. 2010, 16:41:37 · Upravil/a: fuckin
Ahojte,
Mám celkem divný problém. Zprovoznil jsem fulltextové vyhledávání nicméně funguje celkem podivně. Dám příklad. Pokud je toto chování obvyklé, pak mě to přijde dosti nelogické. Hledám slovo "modry jehlan". Ono to najde položky, které obsahují buď modry nebo buď jehlan, nebo oboje dobromady. Já potřebuju aby to vyhledalo to, kde se nachází oboje. Jinými slovy, čím více slov zadám, tím více bude výskytů, což nechci! Chci záznamy, které obsahují daná slova. Můj SQL dotaz SELECT nazev,datum,id FROM data WHERE MATCH(nazev, popis) AGAINST ('$kw' IN BOOLEAN MODE) ORDER BY 5 * MATCH(nazev) AGAINST ('$kw') + MATCH(popis) AGAINST ('$kw') DESC Děkuji za každou radu. |
||
Kajman_ Profil * |
#2 · Zasláno: 15. 8. 2010, 20:53:28
Pokud používáte boolean mode, můžete před slova přidat prefix + viz.
http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html A pokud by to bylo bez boolean, tak by se asi dala podmínka zapsat match against and match against and ... |
||
fuckin Profil |
#3 · Zasláno: 16. 8. 2010, 08:55:24
Kajman:
jinými slovy, to mám před každé slovo přidat ve skriptu + ? Protože uživatel není tak chytrý aby + přidával pokaždé, ikdyž to tam mám vysvětlené. A lze nějakým lehkým způsobem najít i záznamy, které se nejvíce podobají hledanému výrazu, nicméně se třeba liší v jednom písmenu? Teď si nemůžu vzpomenou jak se tomu říká. |
||
Kajman_ Profil * |
#4 · Zasláno: 16. 8. 2010, 16:45:28
jinými slovy, to mám před každé slovo přidat ve skriptu + ?
Asi ano, ale jen do boolean parametru. A lze nějakým lehkým způsobem najít i záznamy, které se nejvíce podobají hledanému výrazu, nicméně se třeba liší v jednom písmenu? Nevybavuji si, že by nějakou takovou podporu mysql měla. Má funkci soundex, ale ta na tohle nebude určená. |
||
Časová prodleva: 14 let
|
0