I have done this project http://www.phpclasses.org/browse/package/3303.htmlis a fulltext search. Please help me to optimize this souce, couse i am planning to move this souce to C. This a fulltext search that supports SQLite or mysql. Please Help me to do this project better. Thanks to all
On 8/24/06, Cesar David Rodas Maldonado <[EMAIL PROTECTED]> wrote:
I will like to join to your group! what i have to do? how can we exchange info? Thanks Pierre Aubert On 8/24/06, Pierre Aubert < [EMAIL PROTECTED]> wrote: > > Hello Cesar, > I have a lot of idea for ft3 but not much time currently. If you want to > join the project you are welcome. My next work will be on creating a sqlite > extension called ft3:) with a module and > virtual tables. > > Pierre > > P.S.: don't stress over your english, French is my mother tongue and I > do a lot of mistakes > myself. On the other hand, it is necessary to speak in english thus ... > > ----- Message d'origine ---- > De : Cesar David Rodas Maldonado <[EMAIL PROTECTED] > > À : Pierre Aubert <[EMAIL PROTECTED]> > Envoyé le : Mercredi, 23 Août 2006, 7h25mn 47s > Objet : Re: [sqlite] Re : [sqlite] how can i optimize this query > > > Hello Pierre Aubert > > I saw your project ft3, that was my inspiration, can I ask you more > about > your projects? more details? > > Thanks Cesar Rodas > > On 8/23/06, Pierre Aubert <[EMAIL PROTECTED]> wrote: > > > > Hello Cesar, > > may be you can have a look at ft3 (ft3.sourceforge.net) which does the > > same thing. > > Some advices: > > * partition your table ft_index on wordid > > I use 1024 tables and use them like that: > > ft_index[ wordid % 1024 ] > > to access them. This reduce the size of the table and thus the size > of > > the index. > > * use a large block size via pragma (this speed up large reads) > > > > FT3 ways is to switch to a binary index stored into a blob for each > word. > > Something like > > create table ft_index ( > > wordid int, > > scores blob > > ); > > > > and the blob is an array of (docid, rank, position, ...) > > > > This is a lot faster of course but you have to deal with the join > > yourself. > > > > PIerre. > > > > P.S.: I will try to use the new virtual table interface to access the > blob > > datas. > > > > ----- Message d'origine ---- > > De : Cesar David Rodas Maldonado < [EMAIL PROTECTED]> > > À : sqlite-users@sqlite.org > > Envoyé le : Mardi, 22 Août 2006, 10h10mn 30s > > Objet : [sqlite] how can i optimize this query > > > > I have the next table with about 10.000.000 of records- > > > > CREATE TABLE ft_index ( > > docid int(11) NOT NULL default '0', > > wordid int(11) NOT NULL default '0', > > posicion int(11) NOT NULL default '0', > > ranking float NOT NULL default '0', > > lang int(11) NOT NULL default '0', > > KEY docid (docid,wordid,posicion,ranking), > > KEY lang (lang) > > ); > > > > How can i optimize the next query, couse i need velocity (this is for > a > > fulltext search project): > > > > > > select > > t0.*, > > t0.ranking + t1.ranking + t2.ranking + t3.ranking + t4.ranking as > ranking > > from ft_index as t0 > > inner join ft_index as t1 on (t0.docid = t1.docid) > > inner join ft_index as t2 on ( t0.docid = t2.docid) > > inner join ft_index as t3 on (t0.docid = t3.docid) > > inner join ft_index as t4 on (t0.docid = t4.docid) > > where (t0.wordid = '18929') AND (t1.wordid = '27283') AND( t2.wordid = > > '4351' and t2.posicion + 1 = t3.posicion and t3.wordid = '9418' and > > t3.posicion + 1 = t4.posicion ) group by t0.docid order by ranking; > > > > Every inner join is for search a word that i save in another table > (with > > the > > number of words). > > > > > > > > > > > > > >