Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 13. 12. 2013, 11:06:03
Zdravím,
na webu mám fulltextové vyhledávání, př.: SELECT * FROM `odstavce` WHERE MATCH (`text`) AGAINST ('estetické') LIMIT 30 "... 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 |
#2 · Zasláno: 13. 12. 2013, 11:10:01
nethor:
zkoušel jsi SELECT * FROM `odstavce` WHERE MATCH (`text`) AGAINST ('*estetické*') LIMIT 30 |
||
nethor Profil |
#3 · Zasláno: 13. 12. 2013, 11:13:36
Zkoušel.
('*estetické*') i ('%estetické%*') Nefunguje. |
||
Taps Profil |
nethor:
nepomůže ani IN BOOLEAN MODE ? |
||
Kajman Profil |
#5 · Zasláno: 13. 12. 2013, 11:28:20
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 |
#6 · Zasláno: 13. 12. 2013, 11:53:09
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 |
#7 · Zasláno: 13. 12. 2013, 13:03:57
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 |
||
Časová prodleva: 10 let
|
0