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