Changeset 349 for trunk


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

Added ability to combine two independant queries.

Location:
trunk/gsdl/src/recpt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/queryaction.cpp

    r347 r349  
    1212/*
    1313   $Log$
     14   Revision 1.11  1999/07/07 06:13:10  rjmcnab
     15   Added ability to combine two independant queries.
     16
    1417   Revision 1.10  1999/07/07 05:49:35  sjboddie
    1518   had another crack at the format string code - created a new formattools
     
    8184  argsinfo.addarginfo (NULL, arg_ainfo);
    8285
     86  // "h2"
     87  arg_ainfo.shortname = "h2";
     88  arg_ainfo.longname = "main index for second query";
     89  arg_ainfo.multiplechar = true;
     90  arg_ainfo.defaultstatus = cgiarginfo::weak;
     91  arg_ainfo.argdefault = "";
     92  arg_ainfo.savedarginfo = cgiarginfo::must;
     93  argsinfo.addarginfo (NULL, arg_ainfo);
     94
    8395  // "j"
    8496  arg_ainfo.shortname = "j";
     
    90102  argsinfo.addarginfo (NULL, arg_ainfo);
    91103
     104  // "j2"
     105  arg_ainfo.shortname = "j2";
     106  arg_ainfo.longname = "sub collection index for second query";
     107  arg_ainfo.multiplechar = true;
     108  arg_ainfo.defaultstatus = cgiarginfo::weak;
     109  arg_ainfo.argdefault = "";
     110  arg_ainfo.savedarginfo = cgiarginfo::must;
     111  argsinfo.addarginfo (NULL, arg_ainfo);
     112
    92113  // "n"
    93114  arg_ainfo.shortname = "n";
     
    99120  argsinfo.addarginfo (NULL, arg_ainfo);
    100121
     122  // "n2"
     123  arg_ainfo.shortname = "n2";
     124  arg_ainfo.longname = "language index for second query";
     125  arg_ainfo.multiplechar = true;
     126  arg_ainfo.defaultstatus = cgiarginfo::weak;
     127  arg_ainfo.argdefault = "";
     128  arg_ainfo.savedarginfo = cgiarginfo::must;
     129  argsinfo.addarginfo (NULL, arg_ainfo);
     130
    101131  // "q"
    102132  arg_ainfo.shortname = "q";
    103133  arg_ainfo.longname = "query string";
     134  arg_ainfo.multiplechar = true;
     135  arg_ainfo.defaultstatus = cgiarginfo::weak;
     136  arg_ainfo.argdefault = "";
     137  arg_ainfo.savedarginfo = cgiarginfo::must;
     138  argsinfo.addarginfo (NULL, arg_ainfo);
     139
     140  // "q2"
     141  arg_ainfo.shortname = "q2";
     142  arg_ainfo.longname = "query string for second query";
     143  arg_ainfo.multiplechar = true;
     144  arg_ainfo.defaultstatus = cgiarginfo::weak;
     145  arg_ainfo.argdefault = "";
     146  arg_ainfo.savedarginfo = cgiarginfo::must;
     147  argsinfo.addarginfo (NULL, arg_ainfo);
     148
     149  // "cq2"
     150  arg_ainfo.shortname = "cq2";
     151  arg_ainfo.longname = "combine queries";
    104152  arg_ainfo.multiplechar = true;
    105153  arg_ainfo.defaultstatus = cgiarginfo::weak;
     
    370418    while (this_doc != end_doc) {
    371419      textout << outconvert << disp << "<tr>\n"
     420
     421//            << "<td valign=top nowrap>r: " << (*this_doc).ranking
     422//            << " t: " << (*this_doc).num_terms_matched << " p: "
     423//            << (*this_doc).num_phrase_match << "</td>\n"
     424   
    372425          << get_formatted_string (*this_doc, formatlistptr) << "\n"
    373426          << "</tr>\n";
     
    377430
    378431    delete (formatlistptr);
    379    
     432
    380433    // output the footer
    381434    textout << outconvert << disp << "_query:footer_";
    382435  }
     436 
    383437  return true;
    384438}
     
    394448  int numdocs = response.numDocs;
    395449  int arg_m = args.getintarg("m");
    396   if (numdocs > arg_m)
    397     numdocs = arg_m;
     450  if (numdocs > arg_m) numdocs = arg_m;
    398451
    399452  // set up _freqmsg_ and _quotedquery_ macros
     
    419472  // than MAXDOCS numDocs can be greater than arg_m while
    420473  // isApprox is false.
    421   if (response.numDocs > numdocs ||
    422       ((response.numDocs == numdocs) && response.isApprox))
    423     resline = "_textmorethan_";
     474  if (response.isApprox) resline = "_textapprox_";
    424475  if (numdocs == 0) resline = "_textnodocs_";
    425476  else if (numdocs == 1) resline += "_text1doc_";
    426   else resline += text_t(numdocs) + " _textlotsdocs_";
     477  else resline += text_t(response.numDocs) + " _textlotsdocs_";
    427478
    428479  disp.setmacro("resultline", "query", resline);
  • trunk/gsdl/src/recpt/querytools.cpp

    r270 r349  
    1212/*
    1313   $Log$
     14   Revision 1.2  1999/07/07 06:12:21  rjmcnab
     15   Added ability to combine two independant queries.
     16
    1417   Revision 1.1  1999/06/15 02:24:06  sjboddie
    1518   moved do_query from queryaction to new querytools module (as do_action
     
    7881  }
    7982
     83  // fill in the second query if needed
     84  if (!args["cq2"].empty()) {
     85    option.name = "CombineQuery";
     86    option.value = args["cq2"];
     87    request.filterOptions.push_back (option);
     88   
     89    text_t quotedstring2;
     90    text_t formattedstring2 = args["q2"];
     91    format_querystring (formattedstring2, quotedstring2);
     92
     93    option.name = "Term";
     94    option.value = formattedstring2;
     95    request.filterOptions.push_back (option);
     96
     97    option.name = "QueryType";
     98    option.value = (args.getintarg("t")) ? "ranked" : "boolean";
     99    request.filterOptions.push_back (option);
     100
     101    option.name = "Casefold";
     102    option.value = (args.getintarg("k")) ? "true" : "false";
     103    request.filterOptions.push_back (option);
     104
     105    option.name = "Stem";
     106    option.value = (args.getintarg("s")) ? "true" : "false";
     107    request.filterOptions.push_back (option);
     108
     109    if (!args["h2"].empty()) {
     110      option.name = "Index";
     111      option.value = args["h2"];
     112      request.filterOptions.push_back (option);
     113    }
     114
     115    if (!args["j2"].empty()) {
     116      option.name = "Subcollection";
     117      option.value = args["j2"];
     118      request.filterOptions.push_back (option);
     119    }
     120
     121    if (!args["n2"].empty()) {
     122      option.name = "Language";
     123      option.value = args["n2"];
     124      request.filterOptions.push_back (option);
     125    }
     126  }
     127 
    80128  option.name = "StartResults";
    81129  option.value = args["r"];
Note: See TracChangeset for help on using the changeset viewer.