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 */