]> code.citadel.org Git - citadel.git/commitdiff
*** empty log message ***
authorArt Cancro <ajc@citadel.org>
Tue, 17 May 2005 22:28:30 +0000 (22:28 +0000)
committerArt Cancro <ajc@citadel.org>
Tue, 17 May 2005 22:28:30 +0000 (22:28 +0000)
citadel/ft_wordbreaker.h
citadel/serv_fulltext.c
citadel/serv_fulltext.o

index 03b2be10e7f2960cb0b28e0e1c3e12d2f3a77758..843c72a72ec82940e18e5657638de3967df1c0c8 100644 (file)
@@ -9,7 +9,7 @@
  * later on, or even if we update this one, we can use a different ID so the
  * system knows it needs to throw away the existing index and rebuild it.
  */
-#define        FT_WORDBREAKER_ID       0x0002
+#define        FT_WORDBREAKER_ID       0x0003
 
 /*
  * Minimum and maximum length of words to index
index c47e2cb264076d728a72f030b9e1ddf95c5bb811..8c5f720f8d89132b2e7bb5488d4f8c9bc0fe9627 100644 (file)
@@ -85,8 +85,11 @@ void ft_index_message(long msgnum, int op) {
                                cdb_bucket = malloc(sizeof(struct cdbdata));
                                cdb_bucket->len = 0;
                                cdb_bucket->ptr = malloc(sizeof(long));
+                               num_msgs = 0;
+                       }
+                       else {
+                               num_msgs = cdb_bucket->len / sizeof(long);
                        }
-                       num_msgs = cdb_bucket->len / sizeof(long);
 
                        ++num_msgs;
                        cdb_bucket->ptr = realloc(cdb_bucket->ptr, num_msgs*sizeof(long) );
@@ -235,7 +238,10 @@ void cmd_srch(char *argbuf) {
        char search_string[256];
        int num_tokens = 0;
        int *tokens = NULL;
-       int i;
+       int i, j;
+       struct cdbdata *cdb_bucket;
+       int num_msgs;
+       long *msgs;
 
        if (CtdlAccessCheck(ac_logged_in)) return;
        extract_token(search_string, argbuf, 0, '|', sizeof search_string);
@@ -245,7 +251,16 @@ void cmd_srch(char *argbuf) {
        if (num_tokens > 0) {
                for (i=0; i<num_tokens; ++i) {
 
-                       cprintf("FIXME search for token %d\n", tokens[i]);
+                       /* search for tokens[i] */
+                       cdb_bucket = cdb_fetch(CDB_FULLTEXT, &tokens[i], sizeof(int));
+                       if (cdb_bucket != NULL) {
+                               num_msgs = cdb_bucket->len / sizeof(long);
+                               msgs = (long *)cdb_bucket->ptr;
+                               cdb_free(cdb_bucket);
+                               for (j=0; j<num_msgs; ++j) {
+                                       cprintf("Token <%d> is in msg <%ld>\n", tokens[i], msgs[j]);
+                               }
+                       }
 
                }
                free(tokens);
index 4601893f801d6580d0f135fad943aaaeabc03186..50c60e42710120918fe13704c0546abaa2cc962d 100644 (file)
Binary files a/citadel/serv_fulltext.o and b/citadel/serv_fulltext.o differ