Autor | Zpráva | ||
---|---|---|---|
Watchick Profil |
#1 · Zasláno: 24. 10. 2008, 06:27:40
zdravím, do ted jsem používal
SELECT * FROM clanky WHERE MATCH(nadpis) AGAINST ('$_GET[search]' IN BOOLEAN MODE) ORDER BY 5 * MATCH(nadpis) AGAINST ('$_GET[search]') DESC Ale tohle vybere jen záznam, když se hledá "ah", pokud je nadpis "no tohle, ah to je krasa", ale kdybycch potřeboval, aby MySQL našlo i záznam s "no nazdar, ahoj", Jak se to dá prosím udělat? Můj kamarád (kterého beru jako svůj vzor v programování) používá u jednoho celkem dost navštěvovaného webu vyhledávání googlem a pak ty výsledky načte k sobě a zobrazí si je svým stylem... To je to opravdu tak složité? |
||
Hugo Profil |
#2 · Zasláno: 24. 10. 2008, 07:17:13
http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html
The asterisk serves as the truncation (or wildcard) operator. Unlike the other operators, it should be appended to the word to be affected. Words match if they begin with the word preceding the * operator |
||
Watchick Profil |
#3 · Zasláno: 24. 10. 2008, 07:26:45
Předpokládám, že to znamená, že se dává zástupná znak * míssto znaku, který může být před ním... Ale když to budou hledat normálně uživatelé? také se to používá tak, že oni si tam tu * musejí dát?
|
||
Hugo Profil |
#4 · Zasláno: 24. 10. 2008, 07:59:14
Watchick
Buď nebo tam * přidej natvrdo při vytváření dotazu. |
||
Watchick Profil |
#5 · Zasláno: 24. 10. 2008, 08:02:32
a když dam * na konec i na začátek, tak to najde i něco, co bude jenom "ah" ? a před nim a nim potom nic nebude?
|
||
Hugo Profil |
#6 · Zasláno: 24. 10. 2008, 08:04:03
Watchick
Jo. Nejlíp to zjistíš testem. |
||
Watchick Profil |
#7 · Zasláno: 24. 10. 2008, 08:10:40 · Upravil/a: Watchick
Já vim, sorry, ale jsem ve školea nejde mi se tu připojit na ftp...
Ještě jedna věc... vím, jak přidat jeden fulltext, ale kdybych chtěl prohledávat názvy, popisy a odkazy? SELECT * FROM clanky WHERE MATCH(nadpis) AGAINST ('$_GET[search]' IN BOOLEAN MODE) OR MATCH(popis) AGAINST ('$_GET[search]' IN BOOLEAN MODE) OR MATCH(odkaz) AGAINST ('$_GET[search]' IN BOOLEAN MODE) ORDER BY 5 * MATCH(odkaz) AGAINST ('$_GET[search]') DESC tak tohle mi předtim nefungovalo (je taky dost možný, že se mi nepovedlo dost dobře nastavit to fulltext indexování...) jak se to dělá, když chci prohledávat více sloupečků? |
||
Hugo Profil |
#8 · Zasláno: 24. 10. 2008, 08:13:32
Watchick
Musíš mít vytvořené fulltext indexy na všech sloupcích, které chceš prohledávat. |
||
Watchick Profil |
#9 · Zasláno: 24. 10. 2008, 08:19:36
a má se to dělat takhle:
alter table clanky add fulltext (nadpis); alter table clanky add fulltext (popis); alter table clanky add fulltext (odkaz); nebo takhle: ? alter table clanky add fulltext (nadpis,popis,odkaz); zobrazí se mi to trochu jinak (jako vyubrazení těch fulltextů u tabulky) |
||
Hugo Profil |
#10 · Zasláno: 24. 10. 2008, 08:22:35
První způsob indexuje sloupce zvlášť, druhým způsobem vytvoříš index společný pro všechny tři sloupce.
|
||
Watchick Profil |
#11 · Zasláno: 24. 10. 2008, 09:24:58
No a pro ten dotaz v postu #7 je lepší co?
Popřípadš, co by jsi použil ty? |
||
Hugo Profil |
#12 · Zasláno: 24. 10. 2008, 09:51:31
„No a pro ten dotaz v postu #7 je lepší co?“
Druhý zpúsob. „Popřípadš, co by jsi použil ty?“ http://www.ujc.cas.cz/poradna/odpo.html#byste |
||
Watchick Profil |
#13 · Zasláno: 24. 10. 2008, 09:56:06
Jo já vim, sorry :-´) a co bys použil ty... já jsem se nějak moc soustředil na dějepis sorry :-)
|
||
Watchick Profil |
#14 · Zasláno: 24. 10. 2008, 14:57:49
Mě to nejde...
|
||
Watchick Profil |
#15 · Zasláno: 24. 10. 2008, 15:03:28
... poslat, alespon jako img:
|
||
Watchick Profil |
#16 · Zasláno: 26. 10. 2008, 15:14:22
nevíte proč to nejde?
|
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0