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

Kombinacija fulltext-a i klasicnog "like" search-a

[es] :: MySQL :: Kombinacija fulltext-a i klasicnog "like" search-a

[ Pregleda: 1260 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mr. Bond
Beograd

Član broj: 126551
Poruke: 124
*.adsl-3.sezampro.rs.

Sajt: https://rs.linkedin.com/i..


+14 Profil

icon Kombinacija fulltext-a i klasicnog "like" search-a11.07.2011. u 11:30 - pre 154 meseci
Cao ljudi. Radim odrzavanje jednog sajta i dok se broj post-ova drzao na niskoj cifri obican fulltext je zavrsavao posao. Medjutim sada mi klijent trazi da radimo i full text i like pretragu (nije on to tako rekao al ja kapiram da mora neka kombinacija da ide posto je rekao "treba mi i parcijalna pretraga, dakle kad ukucam kuc da mi izbaci rezultat kuca"). E sad posto je broj rekorda koji se pretrazuju porastao visestruko a pretraga se radi po 5 kolona (4 kolone su tipa text, fulltext indeksirane i to su opisi posta, a 5-a je kolona koja cuva naziv posta) interesuje me da li imate neki algoritam da preporucite koji bi uspesno povezao ove dve stvari?

Dakle da brzina ostane priblizno kao dok se radio samo fulltext a da u rezultatima imam sto vise onih koje bi vratio i "like"?

Nadam se da sam bio jasan, ako je bilo sta nejasno pitajte rado cu objasniti.
Bad programmers worry about the code. Good programmers worry about data
structures and their relationships.
 
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: Kombinacija fulltext-a i klasicnog "like" search-a11.07.2011. u 11:44 - pre 154 meseci
ako hoce parcijalno to znaci da ces imati like uslov koji pocinje procentom - to znaci FULL TABLE SCAN a ti dalje znas i sam sta to znaci .. (zaboden server) ..

ili pravi svoj sistem za indexiranje, da kazemo npr, "postova" (pravis recnnik tabelu i pravis recnik_post). Tabela sa recnikom ce biti drasticno manja od tabele sa, je li, "postovima" a i posto ces je "cesto" koristiti bice iskesirana uglavnom tako da full table scan kroz nju ne mora da bude zastrasujuce spor. Iz nje izvadis tvoj like %xx% reci koje te zanimaju, tj njihove id-eve i onda iz indexirane int-int tabele recnik_post izvadis sve post_id koji te zanimaju ... to ti je najjednostavniji a poprilicno efektan sistem .. insertovanje postova ce malo da traje posto moras svaki da "indexiras" no to nije preterano strasno, posebno ako je fora da vatas samo pocetakreci% a ne i %krajreci onda cak neces imati ni full tekst nad tom tabelom .. a i mozes da skratis max duzinu reci na 10 karaktera na primer (ako to radis obavezno stavi da je tabela char(10) a ne varchar(10) )

druga varijanta ti je da iskoristis neki drugi externi indexer tipa lucene, sphinx etc etc vidi samo kako se oni ponasaju vezano za te delove reci ...

u svakom slucaju ne gine ti programiranje..
 
Odgovor na temu

[es] :: MySQL :: Kombinacija fulltext-a i klasicnog "like" search-a

[ Pregleda: 1260 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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