Changeset 861


Ignore:
Timestamp:
2000-01-19T12:24:19+13:00 (24 years ago)
Author:
rjmcnab
Message:

fixed a few more bugs

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

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  }
Note: See TracChangeset for help on using the changeset viewer.