Changeset 350 for trunk/gsdl/src/colservr/mgsearch.cpp
- Timestamp:
- 1999-07-07T18:17:48+12:00 (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/src/colservr/mgsearch.cpp
r343 r350 12 12 /* 13 13 $Log$ 14 Revision 1.12 1999/07/07 06:17:47 rjmcnab 15 broke search_index into index+subcollection+language 16 within mgsearch 17 14 18 Revision 1.11 1999/07/05 21:06:43 rjmcnab 15 19 Disabled quoted strings. … … 179 183 docresult.docweight = Weight - docresult.num_query_terms_matched*100; 180 184 181 queryresults->docs.push_back(docresult); 185 queryresults->docs.docset[DocNum] = docresult; 186 queryresults->docs.docorder.push_back(DocNum); 182 187 183 188 return 0; … … 255 260 term.setcarr(Word, ULen); 256 261 queryresultsclass *queryresults = (queryresultsclass *)info; 257 queryresults->termvariants. push_back(to_uni(term));262 queryresults->termvariants.insert(to_uni(term)); 258 263 259 264 return 0; … … 310 315 // makeindexcurrent returns true if it was able to load the database 311 316 bool mgsearchclass::makeindexcurrent (const text_t &index, 317 const text_t &subcollection, 318 const text_t &language, 312 319 const text_t &collection, 313 320 int casefolding, … … 318 325 char *ccollection = collection.getcstr(); 319 326 assert (ccollection != NULL); 320 char *idxsuffix = (getindexsuffix (collection, index)).getcstr();327 char *idxsuffix = (getindexsuffix (collection, (index+subcollection+language))).getcstr(); 321 328 assert (idxsuffix != NULL); 322 329 char *txtsuffix = (getindexsuffix (collection, "text")).getcstr(); … … 382 389 casefold = queryparams.casefolding; 383 390 384 if (makeindexcurrent (queryparams.search_index, queryparams.collection)) { 391 if (makeindexcurrent (queryparams.index, queryparams.subcollection, 392 queryparams.language, queryparams.collection)) { 385 393 setsearchmode (queryparams); 386 394 submitquery (queryparams); … … 420 428 mgq_ask(".set heads_length 150"); 421 429 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 } 425 437 } 426 438 … … 479 491 if (total_retrieved == 0) { 480 492 // not available (or really was zero) 481 queryresults.docs_matched = queryresults.docs. size();493 queryresults.docs_matched = queryresults.docs.docset.size(); 482 494 if (queryresults.docs_matched < queryparams.maxdocs) 483 495 queryresults.is_approx = true; … … 537 549 // collection is loaded. If no index has been loaded 538 550 // defaultindex is needed to load one 539 bool mgsearchclass::docTargetDocument(const text_t &defaultindex, 551 bool mgsearchclass::docTargetDocument(const text_t &defaultindex, 552 const text_t &defaultsubcollection, 553 const text_t &defaultlanguage, 540 554 const text_t &collection, 541 555 int docnum, … … 546 560 char *mgdoc = NULL; 547 561 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; 549 564 if (mgdoc == NULL) return false; 550 565 … … 569 584 570 585 bool mgsearchclass::mgdocument (const text_t &defaultindex, 586 const text_t &defaultsubcollection, 587 const text_t &defaultlanguage, 571 588 const text_t &collection, 572 589 int docnum, … … 583 600 584 601 // try and load the database 585 if (!databaseloaded) databaseloaded = makeindexcurrent (defaultindex, collection); 602 if (!databaseloaded) databaseloaded = makeindexcurrent (defaultindex, defaultsubcollection, 603 defaultlanguage, collection); 586 604 587 605 if (databaseloaded) {
Note:
See TracChangeset
for help on using the changeset viewer.