Ignore:
Timestamp:
1999-07-07T18:17:48+12:00 (25 years ago)
Author:
rjmcnab
Message:

broke search_index into index+subcollection+language
within mgsearch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/colservr/mgsearch.cpp

    r343 r350  
    1212/*
    1313   $Log$
     14   Revision 1.12  1999/07/07 06:17:47  rjmcnab
     15   broke search_index into index+subcollection+language
     16   within mgsearch
     17
    1418   Revision 1.11  1999/07/05 21:06:43  rjmcnab
    1519   Disabled quoted strings.
     
    179183  docresult.docweight = Weight - docresult.num_query_terms_matched*100;
    180184 
    181   queryresults->docs.push_back(docresult);
     185  queryresults->docs.docset[DocNum] = docresult;
     186  queryresults->docs.docorder.push_back(DocNum);
    182187 
    183188  return 0;
     
    255260  term.setcarr(Word, ULen);
    256261  queryresultsclass *queryresults = (queryresultsclass *)info;
    257   queryresults->termvariants.push_back(to_uni(term));
     262  queryresults->termvariants.insert(to_uni(term));
    258263
    259264  return 0;
     
    310315// makeindexcurrent returns true if it was able to load the database
    311316bool mgsearchclass::makeindexcurrent (const text_t &index,
     317                      const text_t &subcollection,
     318                      const text_t &language,
    312319                      const text_t &collection,
    313320                      int casefolding,
     
    318325  char *ccollection = collection.getcstr();
    319326  assert (ccollection != NULL);
    320   char *idxsuffix = (getindexsuffix (collection, index)).getcstr();
     327  char *idxsuffix = (getindexsuffix (collection, (index+subcollection+language))).getcstr();
    321328  assert (idxsuffix != NULL);
    322329  char *txtsuffix = (getindexsuffix (collection, "text")).getcstr();
     
    382389  casefold = queryparams.casefolding;
    383390
    384   if (makeindexcurrent (queryparams.search_index, queryparams.collection)) {
     391  if (makeindexcurrent (queryparams.index, queryparams.subcollection,
     392            queryparams.language, queryparams.collection)) {
    385393    setsearchmode (queryparams);
    386394    submitquery (queryparams);
     
    420428  mgq_ask(".set heads_length 150");
    421429 
    422   char maxdocstr[32];
    423   sprintf(maxdocstr, ".set maxdocs %i", queryparams.maxdocs);
    424   mgq_ask(maxdocstr);
     430  if (queryparams.maxdocs == -1) {
     431    mgq_ask(".set maxdocs all");
     432  } else {
     433    char maxdocstr[32];
     434    sprintf(maxdocstr, ".set maxdocs %i", queryparams.maxdocs);
     435    mgq_ask(maxdocstr);
     436  }
    425437}
    426438
     
    479491  if (total_retrieved == 0) {
    480492    // not available (or really was zero)
    481     queryresults.docs_matched = queryresults.docs.size();
     493    queryresults.docs_matched = queryresults.docs.docset.size();
    482494    if (queryresults.docs_matched < queryparams.maxdocs)
    483495      queryresults.is_approx = true;
     
    537549// collection is loaded. If no index has been loaded
    538550// defaultindex is needed to load one
    539 bool mgsearchclass::docTargetDocument(const text_t &defaultindex,
     551bool mgsearchclass::docTargetDocument(const text_t &defaultindex,
     552                      const text_t &defaultsubcollection,
     553                      const text_t &defaultlanguage,
    540554                      const text_t &collection,
    541555                      int docnum,
     
    546560  char *mgdoc = NULL;
    547561  int doclen = 0;
    548   if (!mgdocument (defaultindex, collection, docnum, mgdoc, doclen)) return false;
     562  if (!mgdocument (defaultindex, defaultsubcollection, defaultlanguage,
     563           collection, docnum, mgdoc, doclen)) return false;
    549564  if (mgdoc == NULL) return false;
    550565
     
    569584
    570585bool mgsearchclass::mgdocument (const text_t &defaultindex,
     586                const text_t &defaultsubcollection,
     587                const text_t &defaultlanguage,
    571588                const text_t &collection,
    572589                int docnum,
     
    583600 
    584601  // try and load the database
    585   if (!databaseloaded) databaseloaded = makeindexcurrent (defaultindex, collection);
     602  if (!databaseloaded) databaseloaded = makeindexcurrent (defaultindex, defaultsubcollection,
     603                              defaultlanguage, collection);
    586604 
    587605  if (databaseloaded) {
Note: See TracChangeset for help on using the changeset viewer.