Changeset 12410


Ignore:
Timestamp:
2006-08-07T16:10:16+12:00 (18 years ago)
Author:
mdewsnip
Message:

Added support for the new "-filter" option to lucene_query.pl (used by us for date filtering). Many thanks to Me and DL Consulting Ltd.

Location:
trunk/gsdl/src
Files:
5 edited

Legend:

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

    r12388 r12410  
    121121  text_t cmd = "\"" + filename_cat(gsdlhome, "bin", "script", "lucene_query.pl") + "\"";
    122122  cmd += (text_t)" \""+indexname + (text_t)"\" \"" + escaped_utf8querystring + (text_t)"\"";
     123
     124  if (!queryparams.filterstring.empty()) {
     125    cmd += " -filter \"" + queryparams.filterstring + "\"";
     126  }
    123127  if (!queryparams.sortfield.empty()) {
    124128    cmd += " -sort \"" + queryparams.sortfield + "\"";
  • trunk/gsdl/src/colservr/queryfilter.cpp

    r12388 r12410  
    9090  query.maxdocs = filterOptions["Maxdocs"].defaultValue.getint();
    9191  query.level = filterOptions["Level"].defaultValue;
    92   // Lucene specific
    93   query.sortfield = filterOptions["SortField"].defaultValue;
    94   query.fuzzysearch = (filterOptions["FuzzySearch"].defaultValue == "true");
     92  query.filterstring = filterOptions["FilterString"].defaultValue;  // Lucene specific
     93  query.sortfield = filterOptions["SortField"].defaultValue;  // Lucene specific
     94  query.fuzzysearch = (filterOptions["FuzzySearch"].defaultValue == "true");  // Lucene specific
    9595  query.maxnumeric = maxnumeric;
    9696  OptionValue_tarray::const_iterator options_here = request.filterOptions.begin();
     
    119119      query.stemming = (filterOptions["Stem"].defaultValue == "true");
    120120      query.level = filterOptions["Level"].defaultValue;
    121       // Lucene specific
    122       query.sortfield = filterOptions["SortField"].defaultValue;
    123       query.fuzzysearch = (filterOptions["FuzzySearch"].defaultValue == "true");
     121      query.filterstring = filterOptions["FilterString"].defaultValue;  // Lucene specific
     122      query.sortfield = filterOptions["SortField"].defaultValue;  // Lucene specific
     123      query.fuzzysearch = (filterOptions["FuzzySearch"].defaultValue == "true");  // Lucene specific
    124124      query.maxnumeric = maxnumeric;
    125125      // "all", needed when combining queries where the document results are needed
     
    154154    } else if ((*options_here).name == "Level") {
    155155      query.level = (*options_here).value;
     156    } else if ((*options_here).name == "FilterString") {
     157      query.filterstring = (*options_here).value;
    156158    } else if ((*options_here).name == "SortField") {
    157159      query.sortfield = (*options_here).value;
  • trunk/gsdl/src/colservr/queryinfo.cpp

    r12388 r12410  
    4747  maxdocs = -1;    // all
    4848  maxnumeric = 4;  // must default to the same value as mg_passes
     49  filterstring.clear();
    4950  sortfield.clear();
    5051  fuzzysearch = 0; // 0 = not fuzzy, 1 = fuzzy
     
    6667  maxdocs = q.maxdocs;
    6768  maxnumeric = q.maxnumeric;
     69  filterstring = q.filterstring;
    6870  sortfield = q.sortfield;
    6971  fuzzysearch = q.fuzzysearch;
     
    8688      (x.maxdocs == y.maxdocs) &&
    8789      (x.maxnumeric == y.maxnumeric) &&
     90      (x.filterstring == y.filterstring) &&
    8891          (x.sortfield == y.sortfield) &&
    8992          (x.fuzzysearch == y.fuzzysearch));
     
    112115  outs << " maxdocs = \"" << q.maxdocs << "\"\n";
    113116  outs << " maxnumeric = \"" << q.maxnumeric << "\"\n";
     117  outs << " filterstring = \"" << q.filterstring << "\"\n";
    114118  outs << " sortfield = \"" << q.sortfield << "\"\n";
    115119  outs << " fuzzysearch = \"" << q.fuzzysearch << "\"\n";
  • trunk/gsdl/src/colservr/queryinfo.h

    r12388 r12410  
    6666  int maxdocs;
    6767  int maxnumeric;
     68  text_t filterstring; // Filter specified (currently only used by Lucene)
    6869  text_t sortfield; // Field to use for sorting result set (currently used by lucene)
    6970  int fuzzysearch; // Should search be fuzzy (only used by Lucene)
  • trunk/gsdl/src/recpt/querytools.cpp

    r12388 r12410  
    138138    option.name = "Level";
    139139    option.value = args["g"];
     140    request.filterOptions.push_back (option);
     141  }
     142
     143  if (!args["fs"].empty()) { // filter string for lucene
     144    option.name = "FilterString";
     145    option.value = args["fs"];
    140146    request.filterOptions.push_back (option);
    141147  }
Note: See TracChangeset for help on using the changeset viewer.