Autor Zpráva
nethor
Profil
Zdravím,
na webu mám fulltextové vyhledávání, př.:
SELECT *
FROM `odstavce`
WHERE MATCH (`text`) AGAINST ('estetické')
LIMIT 30
Kupodivu mi nenašlo záznam:
"... kultivovaný psaný projev i výtvarné a estetické cítění ..."

Po chvíli laborování jsem zjisti, že editor (TinyMce) vkládá mezi 'i výtvarné' a 'a estetické' tvrdé mezery.
(To je dobře, text se správně zalamuje.)

Nedaří se mi ale správně rozchodit fulltext. vyhledávání, dá se to nějak řešit?
Taps
Profil
nethor:
zkoušel jsi
SELECT *
FROM `odstavce`
WHERE MATCH (`text`) AGAINST ('*estetické*')
LIMIT 30
nethor
Profil
Zkoušel.
('*estetické*') i ('%estetické%*')
Nefunguje.
Taps
Profil
nethor:
nepomůže ani IN BOOLEAN MODE ?
Kajman
Profil
Možná by bylo řešení vytvořit druhý sloupec, kde budou ostraněné nedělitelné mezery, html entity a třeba i diakritika. A nad tímto pomocným sloupcem si postavit ten fulltext.
nethor
Profil
Taps: BOOLEAN MODE nepomůže.

Kajman:
Zde uvedený SQL dotaz jsem zjednodušil, v reálu prohledávám asi 5 sloupců a řadím podle relevance, to by DB i workaround dost nafouklo.

Měl jsem spíš na mysli, jestli nejde v SQL použít nějaký modifikátor nebo regulár.
Kajman
Profil
Na vlastním serveru by mělo jít přidat vlastní porovnání.
http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html#comments

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: