Mam len otazku, idem robit fulltextove vyhladavanie v 2 stlpcoch
nazov_s - nazov predmetu, ale v "URL" formate pre vytvaranie peknych adries: teda namiesto Autíčko modré malé -> auticko-modre-male, a chcel by som to vyuzit kedze tam nie je ziadna diakritika (samozrejme aj vo fraze odstranim diakritiku), aby som nemusel vytvarat dalsi stlpec cisto pre vyhladavanie...
nevie niekto ci berie fulltext stlpec s datami typu: auticko-modre-male alebo auticko modre male, teda ci pomlcku berie ako medzery a za nou dalsie slovo...
Zatial mi to ide, len nechcem neskor zistit, ze to moze robit nejake problemy a na novo to cele prerabat
diki
Fórum › MySQL
Fulltext mysql
To marioff : Dáš-li hledat auticko-modre-male, pak se hledá tento výraz. Kdybys to nahradil za + auticko+modre+male, hledalo by se mezi tím, co obsahuje všechna 3 slova. Nejlépe bude, když odstraníš + a nahradíš je za mezeru.
Sleduj mě na twitteru – @lukaschury.
ano - in_bolean_mode (ci ako sa tomu nadava) poznam... ide mi hlavne o to ze text v ktorom sa bude vyhladavat bude mat miesto medzier medzi slovami pomlcku , na toto neviem najst vobec nikde odpoved...
este jeden priklad :-) :
mas v db ulozenu tuto diskusiu, teda ide mi teraz o ten riadok kde je definovana tato tema... V nejakom stlpci je nazov tak ako som ho zadal a v druhom nazov okresany o diaktriku a special.znaky... teda v tomto pripade: fulltext-mysql
no ja to mam tiez tak, a vyhladavanie chcem zalozit prave na tomto stlpci (najma z dovodu problemov s diakritikou)... tak neviem ci uvazujem dobre... alebo musim urobit novy stlpec kde budem ukladat v postate to iste ale ako ako samostatne slova (bez pomlciek) napr. fulltext mysql???
ufffff, hadam som to napisal zrozumitelne :)
To marioff : Hledání v textu, který obsahuje "slovo-slovo" asi nebude dávat kýžené výsledky, protože defaultně nenajdeš při hledání "auto" ani "autovrakoviště", tudíž nenajdeš ani při hledání "mysql", když obsah, v ekterém se prohledává, je "fulltext-mysql" - jakoby jedno slovo.
Sleduj mě na twitteru – @lukaschury.
nieco podobne som si myslel aj ja...
ale je tu velke ALE: ono to funguje... a tiez nerozumiem preco... volaco sa mi zda ze mysql povazuje za slova len take texty ktore su spojene bud _ alebo jednoduchou ' ale nie som si isty
teraz som to vyskusal a zadany text napr. slim najde v 16-gb-slim-mp4-player.... atd
Ono závisí i na kódování, daném dotazu, apod. Hodně toho výsledky vyhledávání ovlivňuje...
Sleduj mě na twitteru – @lukaschury.
akurat som sa zasekol na jednej drobnosti:
ako mam urobit vyhladavanie viacerych slov, ale tak aby boli zobrazene presne tak ako je zadane vyhladavanie, teda takto nejako: mp3 mp4 -> mp3 mp4 player
lebo ked vyhladavam v boolean mode *$vyhladavana_fraza* , tak mi to zobrazuje a hlada po jednotlivych slovach, cize najde napr: mp3 auto mp4, ale potrebujem vyhladavat presne tak ako sa zapise fraza
diki, nejak som sa na tomto zasekol, a neviem co dalej :(
To marioff : Dej to do uvozovek.
http://dev.mysql.com/doc/refman/4.1/en/fulltext-boolean.html
Sleduj mě na twitteru – @lukaschury.
to bolo prve co som skusil :(
to vyhladavanie je v podstate nasepkavac (ci ako sa to nazyva) a pracuje (teda chcel by som aby pracoval) tak ako na http://ebay.com , tak aby ked zadam mp, aby mi tento text naslo trebars aj v strede slova, a len stakym poradim pismen ako su zadane, s uvodzovkami mi to vypise iba ked sa presne trafim do vyrazu..
prisiel som na taketo riesenie:
do db ulozim frazy ktore budu mat miesto medzery podtrznik _ (mp3_mp4_mp5) , cize to bude brane ako 1 slovo, aj ked ich tam bude 10 ...
pri vyhladavani znova len vymenim medzeru za podtrznik _
takto to funguje, len sa chcem opytat ci sa nejak "nepokazia" hlavne vyhody fulltextu - rychlost. atd.... kedze v kazdom riadku bude v podstate len 1 slovo a niekde moze byt aj dost dlhe...
To marioff : Myslím, že to příliš komplikuješ :).
Sleduj mě na twitteru – @lukaschury.
To Curo : mozno ano, ale nasepkavanie by malo tak fungovat nie?
Pokusim sa to podrobnejsie vysvetlit :)
v databaze mam frazy (v jednom stlpci - s indexom fulltext) : mp3, mp3 mobil, mp3 mp4, mp3 mp4 mobil, mobil mp3
do dotazu:
SELECT * FROM tabulka WHERE MATCH(stlpec_s_frazami) AGAINST ('".$zadana_fraza."' IN BOOLEAN MODE) LIMIT 0,10
zadam napr. mp3 a najde mi vsetko, zatial ok. zadam znova: mp3 mp4 a najde zase vsetko co je uz zle... pretoze by malo najst iba mp3 mp4, mp3 mp4 mobil (a tak isto by malo najst aj pri zadani mp3 mp , resp. mp3 m)
samozrejme som uz poskusal vsetky mozne-nemozne sposoby s + - * ""
uplne dobre a tak ako potrebujem funguje LIKE '%slovo1 slovo2%' , ale toho sa bojim, najma s pohladu na vykon.. sice vo vyhladavanom stlpci bude max.30 znakov....tak neviem
alebo je nejaky sposob ako zrychlit vyhladavanie pomocou LIKE, lebo uz som z toho fakt na nervy :(
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Fulltext & Sk/Cz — založil dalaman
Fulltext vyhledávání v databázi — založil MZetko
Mysql list pridanie policka input zapis do mysql — založil Rastislav
Moderátoři diskuze