Changeset 861

Show
Ignore:
Timestamp:
19.01.2000 12:24:19 (20 years ago)
Author:
rjmcnab
Message:

fixed a few more bugs

Location:
trunk/gsdl/src/mgpp/text
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/mgpp/text/MGQuery.cpp

    r855 r861  
    587587 
    588588  unsigned long resultsSize = queryInfo.maxDocs; 
    589   if (resultsSize == 0 || resultsSize > result.ranks.size()) 
    590     resultsSize = result.ranks.size(); 
     589  if (resultsSize == 0 || resultsSize > result.docs.size()) 
     590    resultsSize = result.docs.size(); 
    591591   
    592592  // sort results by rank if needed 
    593   LTRank ltRank; 
     593  GTRank gtRank; 
    594594  if (queryInfo.sortByRank) { 
     595    // need in ascending order for SelectAddHeap 
    595596    MakeHeap (result.docs.begin(), result.ranks.begin(), 
    596           resultsSize, ltRank); 
     597          resultsSize, gtRank); 
    597598    SelectAddHeap (result.docs.begin(), result.ranks.begin(), resultsSize, 
    598599           result.docs.begin()+resultsSize, 
    599600           result.ranks.begin()+resultsSize, 
    600            result.ranks.size()-resultsSize, ltRank); 
    601     SortHeap (result.docs.begin(), result.ranks.begin(), resultsSize, ltRank); 
     601           result.ranks.size()-resultsSize, gtRank); 
     602 
     603    // sort into descending order 
     604    SortHeap (result.docs.begin(), result.ranks.begin(), resultsSize, gtRank); 
    602605  } 
    603606   
     
    609612     
    610613    for (i=0; i<resultsSize; i++) { 
    611       result.ranks[i] = result.ranks[i] *  
     614      result.ranks[i] =  result.ranks[i] * 
    612615    indexData.weightData.GetLowerApproxDocWeight (result.docs[i]) / 
    613616    GetExactDocWeight (indexData.exactWeightsFile, exactDiskPtr, 
     
    618621    if (queryInfo.sortByRank) { 
    619622      MakeHeap (result.docs.begin(), result.ranks.begin(), 
    620         resultsSize, ltRank); 
     623        resultsSize, gtRank); 
    621624      SortHeap (result.docs.begin(), result.ranks.begin(), 
    622         resultsSize, ltRank); 
     625        resultsSize, gtRank); 
    623626    } 
    624627  } 
    625628 
    626629  // get rid of unwanted ranking results 
    627   if (!result.ranks.empty() && !queryInfo.needRankInfo) { 
     630  if (result.ranks.empty()) { 
     631    // do nothing 
     632  } else if (!queryInfo.needRankInfo) { 
    628633    result.ranks.erase(result.ranks.begin(), result.ranks.end()); 
    629634  } else { 
  • trunk/gsdl/src/mgpp/text/Makefile.in

    r860 r861  
    273273 
    274274 
    275 LIB_OBJS = Queryer$o mg_files$o mg_errors$o locallib$o invf$o UCArray$o \ 
     275LIB_OBJS = mg_files$o mg_errors$o locallib$o invf$o UCArray$o \ 
    276276           FIvfLevelInfo$o FragLevelConvert$o Terms$o MGQuery$o \ 
    277277           IndexData$o stemmer$o Weights$o TextGet$o text$o FText$o \ 
  • trunk/gsdl/src/mgpp/text/QueryResultsSort.h

    r855 r861  
    104104   
    105105  unsigned long i = 0; 
    106   for (i=0; i<size; i++) 
     106  for (i=1; i<=size; i++) 
    107107    PushHeap (docNumHeap, parallelHeap, i, comp); 
    108108} 
     
    132132  unsigned long i; 
    133133  for (i=0; i<addSize; i++) { 
    134     if (comp(*(parallelHeap), *(parallelAdd+i))) { 
     134    if (comp(*(parallelAdd+i), *(parallelHeap))) { 
    135135      swap (*(docNumHeap), *(docNumAdd+i)); 
    136136      swap (*(parallelHeap), *(parallelAdd+i)); 
  • trunk/gsdl/src/mgpp/text/Queryer.cpp

    r860 r861  
    7575  QueryInfo queryInfo; 
    7676  SetCStr (queryInfo.docLevel, "Document"); 
    77   queryInfo.maxDocs = 100000; 
     77  queryInfo.maxDocs = 10; 
    7878  queryInfo.sortByRank = true; 
    7979  queryInfo.exactWeights = false; 
  • trunk/gsdl/src/mgpp/text/Weights.cpp

    r855 r861  
    111111  // decompress the weight 
    112112  if (table != NULL) return table[c]; 
    113   else return (L * pow (B, (double) c)); 
     113  return (L * pow (B, (double) c)); 
    114114} 
    115115 
  • trunk/gsdl/src/mgpp/text/mg_weights_build.cpp

    r860 r861  
    4848/* 
    4949   $Log$ 
     50   Revision 1.3  2000/01/18 23:24:19  rjmcnab 
     51   fixed a few more bugs 
     52 
    5053   Revision 1.2  2000/01/18 03:53:24  rjmcnab 
    5154   Fixed a couple of bugs and made building silent if needed. 
     
    242245  while (here != end) { 
    243246//      cout << *here << "\n"; 
    244     WriteF (weightsFile, *here); 
     247    WriteF (weightsFile, sqrt (*here)); 
    245248    here++; 
    246249  }