Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretraga baze za svaku rec iz stringa???

[es] :: MySQL :: Pretraga baze za svaku rec iz stringa???

[ Pregleda: 1979 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

manix
IDD Lab
Arilje

Član broj: 9936
Poruke: 482
*.adsl.verat.net.

Sajt: www.lendovisanje.com


Profil

icon Pretraga baze za svaku rec iz stringa???20.07.2009. u 07:57 - pre 178 meseci
pozz
ima polje u bazi sa naslovima vesti

tabela vesti
polje naslov
———————————————————————————————
Poskupljenje hleba za 30% !!!
Cena benzina duplirana u odnosu na proslu godinu!
Kolika je cena istine??
———————————————————————————————

u polje za pretragu je recimo uneto sledece : cena hleba
Potrebno mi je da izvrsim pretragu za svaku rec posebno, dakle u ovom slucaju bi trebalo da se prikazu sva tri zapisa iz baze

pokusao sam na sledeci nacin(podelim trazeni tekst na reci i napravim upit)
SELECT * FROM vesti WHERE naslov LIKE %cena% OR naslov LIKE %hleba%
sve radi kada je jedna rec u pitanju, cim ukucam dve ili vise ne dobija inakav rezultat iako su sve reci sadrzane(po na osob) u nekom od zapisa...

ako moze pomoc :)
Hvala!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga baze za svaku rec iz stringa???20.07.2009. u 08:50 - pre 178 meseci
ako je tabela MyISAM onda mozes da radis full text search:

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

ako nije onda si nadrljao
 
Odgovor na temu

manix
IDD Lab
Arilje

Član broj: 9936
Poruke: 482
*.adsl.verat.net.

Sajt: www.lendovisanje.com


Profil

icon Re: Pretraga baze za svaku rec iz stringa???20.07.2009. u 09:47 - pre 178 meseci
Citat:
bogdan.kecman: ako je tabela MyISAM onda mozes da radis full text search:

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

ako nije onda si nadrljao


hmm... kako da znam da li je

server je
# Server version: 5.0.81-community
# Protocol version: 10
# Server: Localhost via UNIX socket

i moze li mala pomoc u vezu fulltext, malo mi je ovo zurno :) ako ne, onda se moram baciti na proucavanje :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga baze za svaku rec iz stringa???20.07.2009. u 09:53 - pre 178 meseci
sto se engine-a tice

Code:

SHOW CREATE TABLE vesti\G


i videces na kraju "engine=..." tu ce da pise MyISAM ili InnoDB ili ..

isto tako mozes i sa

Code:

show table status like '%vesti%';


pa vidis u koloni engine sta pise ..

mozes da promenis (ako ti je dozvoljeno) engine za tu tabelu u myisam (obrati paznju onda vise nije transaction safe, crash safe, ne rade strani kljucevi, ne rade constraintsi ... ali - radi fulltext i nesto je brze od innodb-a) sa:

Code:

ALTER TABLE vesti ENGINE=myisam;



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga baze za svaku rec iz stringa???20.07.2009. u 10:08 - pre 178 meseci
sto se tice full text search-a .. moras na kolonu/kolone koje pretrazujes da dodas fulltextsearch index ...

evo ti primer, posto ne znam kako tvoja tabela izgleda evo ti neka "bezvezna":

napravis tabelu i napuinis glupostima
Code:

mysql> create table t1 (id int auto_increment primary key, vest text) engine=myisam;
Query OK, 0 rows affected (0.05 sec)

mysql> insert into t1 (vest) values ('evo ti primer, posto ne znam kako tvoja tabela izgleda evo ti neka');
Query OK, 1 row affected (0.00 sec)

mysql> insert into t1 (vest) values ('mozes da promenis (ako ti je dozvoljeno) engine za tu tabelu u myisam (obrati paznju onda vise nije transaction safe, crash safe, ne rade strani kljucevi, ne rade constraintsi ... ali - radi fulltext i nesto');
Query OK, 1 row affected (0.00 sec)



dodas full text index na polje vest

Code:

mysql> alter table t1 ADD FULLTEXT (vest);
Query OK, 9 rows affected (0.05 sec)
Records: 9  Duplicates: 0  Warnings: 0



i sad nesto pitas:
Code:

SELECT *, MATCH (vest) AGAINST ('transaction dozvoljeno') AS score FROM t1 WHERE MATCH (vest) AGAINST ('transaction dozvoljeno');



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Pretraga baze za svaku rec iz stringa???20.07.2009. u 10:13 - pre 178 meseci
obrati paznju da se reci ispod 4 slova ne indexiraju i da se "stop words" ne indexiraju ... default stop words mozes da vidis ovde:
http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html
 
Odgovor na temu

manix
IDD Lab
Arilje

Član broj: 9936
Poruke: 482
*.adsl.verat.net.

Sajt: www.lendovisanje.com


Profil

icon Re: Pretraga baze za svaku rec iz stringa???20.07.2009. u 15:36 - pre 178 meseci
WOW :) hvala puno!!!

Sasvim je dovoljno ovo,kljucne stvari na koje treba obratiti paznju.
U medjuvremenu sam proverio i u pitanju je MyISAM :) tako da idem da pravim.

Jos jedno hvala puno na detaljnom odgovoru i pomoci!

[Ovu poruku je menjao manix dana 21.07.2009. u 02:15 GMT+1]
 
Odgovor na temu

[es] :: MySQL :: Pretraga baze za svaku rec iz stringa???

[ Pregleda: 1979 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.