Hello!


This patch fixes that search results cache and
queries tracking were not working.

Regards.
Index: include/udm_common.h
===================================================================
RCS file: /usr/src/CVS/mnogosearch32/include/udm_common.h,v
retrieving revision 1.79
diff -u -r1.79 udm_common.h
--- include/udm_common.h        2001/09/25 11:20:41     1.79
+++ include/udm_common.h        2001/09/26 11:00:32
@@ -87,10 +87,6 @@
 #define UDM_MATCH_WILD         5
 #define UDM_MATCH_ICASE                1
 
-/* search cache */
-#define UDM_CACHE_ENABLED      1
-#define UDM_CACHE_DISABLED     0
-
 /* Indexer return codes */
 #define IND_UNKNOWN            0
 #define IND_OK                 1
@@ -112,12 +108,6 @@
 #define UDM_FLAG_SKIP_LOCKING  256
 #define UDM_FLAG_LOAD_LANGMAP  512
 
-/* Tracking modes */
-#define UDM_TRACK_DISABLED     0
-#define UDM_TRACK_QUERIES      1
-#define UDM_TRACK_WORDS                2
-
-
 /* URLFile actions */
 #define UDM_URL_FILE_REINDEX   1
 #define UDM_URL_FILE_CLEAR     2
@@ -821,11 +811,9 @@
        int  sort_order;
        int  page_number;
        int  page_size;
-       int  track_mode;
        UDM_SPELL t_Spell;
        int read_timeout;
        int doc_timeout;
-       int cache_mode;
 
        size_t total_found;
        size_t loaded_nwords;
Index: src/agent.c
===================================================================
RCS file: /usr/src/CVS/mnogosearch32/src/agent.c,v
retrieving revision 1.12
diff -u -r1.12 agent.c
--- src/agent.c 2001/09/24 12:04:19     1.12
+++ src/agent.c 2001/09/26 11:01:52
@@ -38,7 +38,6 @@
        bzero(&result->t_Spell,sizeof(UDM_SPELL));
        result->read_timeout=UDM_READ_TIMEOUT;
        result->doc_timeout=UDM_DOC_TIMEOUT;
-       result->cache_mode=UDM_CACHE_DISABLED;
        result->spellang = -1;
        
        for(i=0;i<256;i++)
Index: src/sql.c
===================================================================
RCS file: /usr/src/CVS/mnogosearch32/src/sql.c,v
retrieving revision 1.102
diff -u -r1.102 sql.c
--- src/sql.c   2001/09/25 11:48:59     1.102
+++ src/sql.c   2001/09/26 11:00:57
@@ -4966,7 +4966,8 @@
 UDM_URL_CRD * UdmFindWords(UDM_AGENT * query, const char * words){
        UDM_URL_CRD * wrd=NULL;
        char param[1024*4]="";
-
+       const char * cache_mode=NULL;
+       
 #ifdef DEBUG_SEARCH
        unsigned long debug_search_ticks;
        debug_search_ticks=UdmStartTimer();
@@ -4995,7 +4996,9 @@
 
        
snprintf(param,sizeof(param),"%s%s%s%08X.%08X",query->Conf->vardir,"cache",UDMSLASHSTR,UdmStrCRC32(param),UdmStrCRC32(words));
 
-       
if((query->cache_mode==UDM_CACHE_ENABLED)&&(wrd=UdmFindInCache(query,param,&query->loaded_nwords))){
+       cache_mode=UdmFindStrVar(query->Conf->vars, "Cache", "no");
+
+       
+if((!strcasecmp(cache_mode,"yes"))&&(wrd=UdmFindInCache(query,param,&query->loaded_nwords))){
                query->withoffset=0;
        }else{
                /* If not found in search cache       */
@@ -5031,7 +5034,7 @@
                /* Store into search result cache */
 #if (WIN32|WINNT)
 #else
-               if((query->cache_mode==UDM_CACHE_ENABLED)&&(search_cache_size>-1)){
+               if((!strcasecmp(cache_mode,"yes"))&&(search_cache_size>-1)){
                        fflush(stdout);
                        fflush(stderr);
                        if(fork()==0){
@@ -5052,6 +5055,7 @@
        UDM_URL_CRD *wrd=NULL;
        size_t i;
        unsigned long ticks;
+       const char * track_mode=NULL;
 #ifdef DEBUG_SEARCH
         unsigned long debug_search_ticks;
 #endif
@@ -5075,10 +5079,10 @@
        strncpy(Res->wordinfo,query->wordinfo,sizeof(Res->wordinfo)-1);
 
        /* Track query if required */
-       if((query->track_mode)&UDM_TRACK_QUERIES){
+       track_mode=UdmFindStrVar(query->Conf->vars, "TrackQuery", "no");
+       if(!strcasecmp(track_mode,"yes")){
                if(IND_OK!=UdmTrack(query,words))
                        return NULL;
-               
        }
 
        /* Return if no words found   */

Reply via email to