Autor Zpráva
fuckin
Profil
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 *
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
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 *
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á.

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:

0