From 31d92bfe53a584b240d5ee034151a40fa73b6894 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 17 May 2005 19:33:07 +0000 Subject: [PATCH] *** empty log message *** --- citadel/serv_fulltext.c | 48 +++++++++++++++++++++++++++++++--------- citadel/serv_fulltext.o | Bin 6770 -> 3522 bytes citadel/server.h | 1 + 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/citadel/serv_fulltext.c b/citadel/serv_fulltext.c index 37bfc3cd2..018ca9ab6 100644 --- a/citadel/serv_fulltext.c +++ b/citadel/serv_fulltext.c @@ -60,6 +60,8 @@ void ft_index_message(long msgnum, int op) { int num_tokens = 0; int *tokens = NULL; int i; + struct cdbdata *cdb_bucket; + int num_msgs; msg = CtdlFetchMessage(msgnum, 1); if (msg == NULL) return; @@ -71,10 +73,26 @@ void ft_index_message(long msgnum, int op) { if (num_tokens > 0) { for (i=0; ilen = 0; + cdb_bucket->ptr = malloc(sizeof(long)); } + num_msgs = cdb_bucket->len / sizeof(long); + + /* FIXME finish this */ + + cdb_free(cdb_bucket); + + /* FIXME unlock the file */ + } + free(tokens); } } @@ -128,8 +146,15 @@ int longcmp(const void *rec1, const void *rec2) { */ void do_fulltext_indexing(void) { int i; + static time_t last_index = 0L; - lprintf(CTDL_DEBUG, "do_fulltext_indexing() started\n"); + /* + * Make sure we don't run the indexer too frequently. + * FIXME move the setting into config + */ + if ( (time(NULL) - last_index) < 300L) { + return; + } /* * Check to see whether the fulltext index is up to date; if there @@ -140,19 +165,22 @@ void do_fulltext_indexing(void) { lprintf(CTDL_DEBUG, "CitControl.MMfulltext = %ld\n", CitControl.MMfulltext); if (CitControl.MMfulltext >= CitControl.MMhighest) { - lprintf(CTDL_DEBUG, "Nothing to do!\n"); + /* nothing to do! */ return; } - - /* - * Make sure we don't run the indexer too frequently. - * FIXME write this... - */ + lprintf(CTDL_DEBUG, "do_fulltext_indexing() started\n"); + /* * If we've switched wordbreaker modules, burn the index and start * over. FIXME write this... */ + if (CitControl.fulltext_wordbreaker != FT_WORDBREAKER_ID) { + lprintf(CTDL_INFO, "(re)initializing full text index\n"); + cdb_trunc(CDB_FULLTEXT); + CitControl.MMfulltext = 0L; + put_control(); + } /* * Now go through each room and find messages to index. diff --git a/citadel/serv_fulltext.o b/citadel/serv_fulltext.o index 7661e3c19b4ddac642600165ef187258012ecae2..935d5092a8565a6dd2b12d1133d1b2db900450e4 100644 GIT binary patch literal 3522 zcma)8Uu;uV82{R}u7d>zqJpAcWh0x6X21Y-kZ9(G5gC~SVuF&TYwy->ZSTDImVvTO zt;8&)_<%7+eQ^4KiHYGslc_Ht#DxbUkr;jO0pg!@*^E<1(!?e8_nmuA*IhC3H240_ z@B4SY^PNApWBUF*KA(?N^HCKoGNKznSJNt>k(N`44v+tGFgsg6rO&f)N}prM&V~kj zrA(->P%4$Om+Qv$Vs@lRncy^A<-jI)abRbCb~cdL=eqLxd>6!}^DI_g+1c7srdVbp z^R)8Jr|_E6XYodu**1NCW&W(&&#yV$ zRSAcD*8<{>`_*t55!FDQrB5JOtS9PH5qPP{trZQ3pVVkFKrN!>Xk16sTE=2dUue^d zqcvD^EEdhIbp<0Vz`RQ{)p9fB^m!2j`y;>wEN8tbSO>@5o8UecoW25pg*&nMozN^< zwbFL3SG;A3+^wOQ@5$iw>mouZ-nGOgyL%0|&k19S@gY{-u{i14#SJhO$|^#u1s zT^CDJ_S?-$Y{M#y=oU@py>wZy*?prgP3c9p76CiBWC?8XeC;U~=I$47y~z7fu3I1% zSl8yy>_Rbehl|3k=^C#&+{$Lz3xOrPypW}395IhWL^G%5&~S8j)5u1ijE~26kBNwm zgQ8~U`hCNjcF6{t61j2Y+x57zZ$h`YU={nEN8Bokqz0Lsgzc3}l(PG^hGeW+bId^_ ztu@4!QG3E^H`9(~Cc~Yb@kD>zupLd?&1N2DUnZG!jN^_{B4o_$QPQ47I%XVCr28A2 zG~0<-jsgEh%Vor`mJnZRtvst^-u{S;KZ)TodtDx>aB*H&&d6-7~_%eJMLel^bi`t|odJ0^SZ> zFV3${_ABG9g~1yt2=o56~Z_MGfaysbyX{0&`Uz*Q<(x#Pi~OSmXPbUhM*9 zUri6VU17Nj?`G-C{>*m*c^wsRN58g$ccIU%8L6(uh!K~HH|Jq__^5}U@$k1i{Cy8U z=i%o){4;RQ#RPIbUwQObJ^VZHcVYjewExMY|INd1d3XrEKjL{x`q!baVSn(Kk;iWU zs>bzr#KT)X{0R@=@8R7Zegu3C7KhI{kC*c3Pl0RDwcuGrf0oELtYhWNG90C3#CF^} zGu%RbPEXnxmbb5DxT|f^&7^uN`;lbQjIu)9pgk$Wwj=!pwL7uo9>a;oJEdUQv|_!M z5g9ZrS7{lB(j|wiMB3@2XsoxVkDVyxh7|%BQlEI02eJDrJ`{wgOOvonGew;z_(Q^X zYQKT+2_zyX)6yf0StZSMe>638+gqQUM9L63IaVeerJ;<|6Lr5$w8st8&0$}#P0OK_ zkxH4zjHQJ|Q4)?Ax7+AX*p6WxL^%>>y2CUFDPl)ch!?j>oIn2xqC;38|4O1>Mr@RK zfIi$w6U=d_zhGQVbd3>zk@ycVBkw;yE>?~4F5K-v-#ysRjJTloG2$*iAn_0*4)F65 z;}R`K+*!jwKmHDlN&Xrm{PU83%=&wYK4-*7<7<}RO>~|4dZNwP`+jW39Y7!U<!o#M4rLR_foA@^e!DiIjiIs1aS3`m4+zBKlVH?-@~# zn~dv-er5f`M87k~{QhRdU$QD(vCL~2QI8cs{|2HBQvR5f>k^Mhc~bI|5?=-S>+v^F y>OYV;DfJgvkNDRm|A9Hy?)5UBn_ge1 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 MGVq}(h9YqO4K1DqT>t<8 diff --git a/citadel/server.h b/citadel/server.h index 8281869e1..5484129ce 100644 --- a/citadel/server.h +++ b/citadel/server.h @@ -261,6 +261,7 @@ enum { CDB_DIRECTORY, /* address book directory */ CDB_USETABLE, /* network use table */ CDB_BIGMSGS, /* larger message bodies */ + CDB_FULLTEXT, /* full text search index */ MAXCDB /* total number of CDB's defined */ }; -- 2.39.2