Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 32 ] Choď na stránku: 1, 2 ďalšia
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.07.2009 13:49

Nikdy som nerobil hladanie a neviem ako najefektivnejsie ho spravit.. mohli by ste mi napisat ako by to bolo najlepsie?.. pripadne dat link na nejaku stranku kde by to bolo vysvetlene..


Offline

Čestný člen
Čestný člen
Hladanie na stranke

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 01.07.2009 14:02

Ale ake hladanie? Coho? Pouzivas databazu?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 01.07.2009 14:08

Hladanie v clankoch, ktore mam ulozene v databaze...


Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 01.07.2009 14:26

Keď už je reč o tom hľadaní, skúšal si čo také hľadanie robí? Lebo by pred tým než napíšeš takúto tému bolo treba vyskúšať to hľadanie.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 01.07.2009 14:40

Hej.. viem co robi hladanie :D..

Mam napisanych napr. 5 clanokv.. a ked dam hladat nejake slovo, ktore sa nachadza v 3 z tych 5 clankov, tak mi zobrazi odkazy na tie clanky.. . to by som vedel spravit.. len neviem ako vyriesim ich poradie (cize prve by mal byt odkaz na ten clanok, ktory obsahuje najviac slov)

ako na wikipedii http://sk.wikipedia.org/w/index.php?tit ... s%C5%A5+na


Offline

Čestný člen
Čestný člen
Hladanie na stranke

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 01.07.2009 14:52

Klasicke hladanie by som riesil pomocou SQL "LIKE" operatoru, ale kedze potrebujes zoradit podla poctu slov, asi by som nacital vsetky clanky do pola a pomocou preg_match_all() by som zistoval pocet najdenych slov.
edit: radsej pouzi substr_count().


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 01.07.2009 15:08

dobry napad Dury ;), skusim to natiadnut do pola


Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 01.07.2009 15:28

Myslím, že to bude náročne pre parser, skúšal by som nájsť nejakú funkciu v MySQL, ktorá vie spočítať dĺžku výsledku. A keď nie tak si aspoň natiahni len tie výsledky, ktoré sa zhodujú s DB a potom porovnávaj výskyt.


Offline

Skúsený užívateľ
Skúsený užívateľ
Hladanie na stranke

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 01.07.2009 17:11

Na vyhľadávanie jednoznačne fulltext http://dev.mysql.com/doc/refman/5.1/en/ ... earch.html
Aj keď ten sa vyplatí hlavne pri väčších objemoch dát...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 01.07.2009 17:38

to rooobertek: a ako by sa dal ten fulltext vyuzit v praxi?(nejaky kod), bo na tej stranke tomu moc nerozumiem...


Offline

Skúsený užívateľ
Skúsený užívateľ
Hladanie na stranke

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 01.07.2009 21:19

vytvoríš si tabulku (ty už ju máš). Na jeden stĺpec pridáš fulltextový index (jednoduchý zákrok, znie to pre teba možno odstrašujúco, ale nie je to nič ťažké).
Hľadanie sa robí takýmto spôsobom :
Kód:
SELECT * FROM tabulka WHERE MATCH(stlpec) AGAINST("to co hladas")
Toto ti vyhľadá a automaticky zoradí výsledky podľa toho, čo je ako relevantné. No ale ako hovorím, je to dobré hlavne pri veľa záznamoch.

Pridanie toho fulltextového indexu :
Kód:
ALTER TABLE tabulka ADD FULLTEXT(stlpec);


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 01.07.2009 22:56

aha.. dik, ale nejak mi nechce fungovat toto..
Kód:
$hladat = mysql_query("SELECT * FROM clanky WHERE MATCH(clanok) AGAINST('text')");
echo mysql_num_rows($hladat);

vypise mi vzdy 0 aj ked sa v zazname nachadza slovo text.. Typ tabulky mam ako myISAM bo ako innoDB mi tam neslo dat ten fulltext


Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 01.07.2009 23:51

Fulltext podporuje len typ tabulky myISAM ...
Skus takto:

Kód:
$hladat = mysql_query("SELECT * FROM clanky WHERE MATCH(clanok) AGAINST('text' IN BOOLEAN MODE)");
echo mysql_num_rows($hladat);







_________________
"Ženy jsou jako domény. Ty nejlepší jsou zabrané, ale pořád můžete získat nějaké z exotických zemí."
Offline

Skúsený užívateľ
Skúsený užívateľ
Hladanie na stranke

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 02.07.2009 8:35

nezabudol si vytvoriť fulltext index?







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 02.07.2009 8:40

rooobertek píše:
nezabudol si vytvoriť fulltext index?


Ved pisal ze ho tam dal. Pogo:
Citácia:
Typ tabulky mam ako myISAM bo ako innoDB mi tam neslo dat ten fulltext







_________________
"Ženy jsou jako domény. Ty nejlepší jsou zabrané, ale pořád můžete získat nějaké z exotických zemí."
Offline

Skúsený užívateľ
Skúsený užívateľ
Hladanie na stranke

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 02.07.2009 9:26

snacker, to som si nevšimol, zásadne nečítam dôležitejšie informácie :D
Potom by sa ešte mohlo stať, že si trafil slovo z blacklistu http://dev.mysql.com/doc/refman/5.1/en/ ... words.html







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 02.07.2009 9:43

Fuha, zaujimavy blacklist, o nom som nevedel. Ale podla mna to neni v tom, pretoze pravdepodobne hladal slovo
AGAINST('text' )");
Raz som riesil nieco podobne a tiez mi to nechcelo vyhladat nejake slovo, skusal som hocico a nakoniec pomohlo ked som hladal v booleanovskom mode. Neviem presne preco, no odvtedy "ho nosim stale pri sebe" :lol:







_________________
"Ženy jsou jako domény. Ty nejlepší jsou zabrané, ale pořád můžete získat nějaké z exotických zemí."
Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 02.07.2009 17:44

Ja riesim vyhladavanie tak, ze si vytvaram XML subor s celym obsahom webu (potrebujem ho aj k niecomu inemu).. Obsahuje aj vsetok text malymi pismenami a bez diakritiky.. a potom hladany text vyhladavam v nom :)







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 02.07.2009 17:47

Kvôli čomu tie slová nefungujú, čo sú v tom blackliste? To je tak naschval alebo je to chyba DB


Offline

Skúsený užívateľ
Skúsený užívateľ
Hladanie na stranke

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 02.07.2009 18:46

Sú to slová s častým výskytom, ktoré ale výsledky vyhľadávania iba deformujú, keďže nie sú kľúčové. Tak to vidím ja, možno to je nejako inak...







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 02.07.2009 19:05

Ešteže sú anglické a u Slovákov sa veľmi nepoužívajú :-D


Offline

Skúsený užívateľ
Skúsený užívateľ
Hladanie na stranke

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 02.07.2009 19:30

ak si chceš dať slovenské, musíš prekompilovať mysql







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 02.07.2009 20:24

Doplnil som tam IN BOOLEAN MODE a uz to slape:).. Potom som skusal tie slova z blacklistu a on ich fakt nevedel najist.. dost divne...


Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 31.05.09
Prihlásený: 02.06.17
Príspevky: 562
Témy: 37
Bydlisko: BegyBen
Príspevok NapísalOffline : 02.07.2009 20:46

Vravel som ti mal som presne podobny problem raz ;)







_________________
"Ženy jsou jako domény. Ty nejlepší jsou zabrané, ale pořád můžete získat nějaké z exotických zemí."
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 03.07.2009 10:07

pogo: to akoby si hladal na slovensku "a, o, i, ale, alebo, keď, možno, ..." Proste to sú slová ktoré sú spojky, častice, (niekedy číslovky) ... Nie sú plnovýznamové, a prote by mohlo dôjsť k deformácií výsledku typu: Hľadáš "Janko a Marienka", ale prvých 100 výsledkov budú stránky kde sa v texte vyskytuje a najviackrát :)

BlackShadow: do XML? Keby si mal stránku kde by si mal 300 článkov (dávam menej lebo 12 000 je veľa, že? :-D) chceš povedať, že:
1. vytvorenie súboru bude rýchle
2. jeho čítanie je rýchle
3. hľadanie v ňom je rýchle
???

Podľa mňa dosť neefektívne riešenie


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Príspevky: 230
Témy: 62
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 03.07.2009 17:09

A ako spravim to poradie? :D ..
Myslim to ze to bude zoradene podla poctu najdenych slov.. bo toto mi to tak nezoradi :(

//edit: skusal som toto ale problem je v tom ze kazdemu zaznamu da score 1
Kód:
$hladat = mysql_query("SELECT *,MATCH(clanok) AGAINST('$hladane' IN BOOLEAN MODE) as score FROM clanky WHERE MATCH(clanok) AGAINST('$hladane' IN BOOLEAN MODE) ORDER BY score DESC");


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.07.09
Prihlásený: 16.07.09
Príspevky: 3
Témy: 0
Príspevok NapísalOffline : 16.07.2009 8:15

ALTER TABLE tabulka ADD FULLTEXT(stlpec);
tento kod musim pouzivat vzdy pri vyberani dat z databazy?
alebo staci to urobit raz v databazovom rozhrni?


Offline

Správca fóra
Správca fóra
Hladanie na stranke

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 16.07.2009 8:40

pre vyberanie dat z tabulky sluzi SELECT, alter je urceny na zmenu "struktury" tabulky...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 07.07.09
Prihlásený: 16.07.09
Príspevky: 3
Témy: 0
Príspevok NapísalOffline : 16.07.2009 8:48

mam ma mysli ze pri odoslani formulara urobim tento skript:
1)
SELECT *, MATCH(stlpec1, stlpec2, stlpec3) AGAINST('slovo') AS score FROM tabulka
WHERE MATCH(stlpec1, stlpec2, stlpec3) AGAINST('slovo')
ALTER TABLE tabulka ADD FULLTEXT(stlpec);

2)
alebo v databazovom rozhrani urobim:
ALTER TABLE tabulka ADD FULLTEXT(stlpec)
a potom uz pri vyhladavani staci SELECT *, MATCH(stlpec1, stlpec2, stlpec3) AGAINST('slovo') AS score FROM tabulka
WHERE MATCH(stlpec1, stlpec2, stlpec3) AGAINST('slovo')

co je spravne 1) alebo 2)? hladal som to na viacerych forach a vsade pisu inak :)


Offline

Užívateľ
Užívateľ
Hladanie na stranke

Registrovaný: 04.04.08
Prihlásený: 27.02.12
Príspevky: 531
Témy: 27
Bydlisko: Nitra
Príspevok NapísalOffline : 16.07.2009 10:57

Tento SQL:
Kód:
ALTER TABLE tabulka ADD FULLTEXT(stlpec)

Pustíš len raz, napr. v PMA alebo nejakom inom DB adminovi

A tento kód:
Kód:
SELECT *, MATCH(stlpec1, stlpec2, stlpec3) AGAINST('slovo') AS score FROM tabulka
WHERE MATCH(stlpec1, stlpec2, stlpec3) AGAINST('slovo')

Použiješ pri vyhľadávaní







_________________
V príprave...
Odpovedať na tému [ Príspevkov: 32 ] Choď na stránku: 1, 2 ďalšia


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Firefox hladanie na stránke

v Sieťové a internetové programy

3

509

02.12.2006 23:04

aaggii Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Google hladanie zakomponovane na stranke

v PHP, ASP

25

1268

21.07.2008 19:02

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hladanie

v Správy pre vedenie fóra

2

1339

04.03.2007 0:16

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladanie

v Internetový marketing, SEO, reklama

8

701

29.03.2011 20:50

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hladanie

v PHP, ASP

2

581

31.03.2009 18:27

tatysp Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. hladanie cisla

v Krčma

7

4842

16.09.2010 11:53

ac.milan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hľadanie predmetov

v Počítačové hry

0

1331

30.06.2010 21:14

klatisko25cm Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. (JS) Hladanie

v JavaScript, VBScript, Ajax

8

593

11.03.2010 16:08

mylan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hľadanie v súbore

v PHP, ASP

5

481

13.12.2011 18:26

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladanie v teme

v Správy pre vedenie fóra

4

1048

09.11.2008 21:35

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hľadanie duplicitných súborov

v Ostatné programy

1

835

02.07.2009 12:53

Horalka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hladanie gulatej lampy

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Voľný čas a hobby

54

7115

31.12.2006 13:11

Kamahl Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladanie pripon C#

v Technológia .NET

8

677

26.04.2012 10:44

Rdf Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hladanie v DB

v PHP, ASP

3

455

23.10.2008 18:01

pa3ck Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hladanie v databaze

v PHP, ASP

2

766

12.03.2010 14:05

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladanie v array

v PHP, ASP

5

473

19.03.2012 21:38

w3r0 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra