Changeset 12246


Ignore:
Timestamp:
2006-07-19T14:45:46+12:00 (18 years ago)
Author:
mdewsnip
Message:

GSDLHOME and GSDLOS environment variables need to be set for lucene_query.pl. Thanks to John Thompson and DL Consulting Ltd.

Location:
trunk/gsdl/src/colservr
Files:
3 edited

Legend:

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

    r9937 r12246  
    2121 * along with this program; if not, write to the Free Software
    2222 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    23  *
    24  * $Id$
    2523 *
    2624 *********************************************************************/
     
    120118        cserver->add_source (mggdbmsource);
    121119
    122       } else if (buildtype == "mgpp") {
     120      }
     121      else if (buildtype == "mgpp") {
    123122       
    124123        mgppsearch = new mgppsearchclass();
     
    135134        mggdbmsource->set_textsearchptr (mgppsearch);
    136135        cserver->add_source (mggdbmsource);   
    137       } else if (buildtype == "lucene") {
     136      }
     137      else if (buildtype == "lucene") {
    138138        lucenesearch = new lucenesearchclass();
    139        
     139        lucenesearch->set_gsdlhome(gsdlhome);
     140
    140141        // add a query filter
    141142        lucenequeryfilterclass *queryfilter = new lucenequeryfilterclass();
     
    149150        lucenegdbmsource->set_textsearchptr (lucenesearch);
    150151        cserver->add_source (lucenegdbmsource);   
    151   }
     152      }
    152153
    153154
     
    332333    mggdbmsource->set_textsearchptr (mgsearch);
    333334    cserver->add_source (mggdbmsource);
    334 
    335   } else if (buildtype == "mgpp") {
    336      
     335  }
     336  else if (buildtype == "mgpp") {
    337337    mgppsearch = new mgppsearchclass();
    338338
     
    348348    mggdbmsource->set_textsearchptr (mgppsearch);
    349349    cserver->add_source (mggdbmsource);
    350 
    351   } else if (buildtype == "lucene") {
     350  }
     351  else if (buildtype == "lucene") {
    352352    lucenesearch = new lucenesearchclass();
     353    lucenesearch->set_gsdlhome(gsdlhome);
    353354
    354355    // add a query filter
  • trunk/gsdl/src/colservr/lucenesearch.cpp

    r11162 r12246  
    4444
    4545#include "expat_resultset.h"
    46 
    4746
    4847text_t lucenesearchclass::getindexsuffix(const queryparamclass &qp) {
     
    129128  cerr << "***** index name = " << indexname << endl;
    130129
    131   text_t cmd = "\""+filename_cat(getenv("GSDLHOME"), "bin", "script", "lucene_query.pl")+"\"";
     130  text_t cmd = "\"" + filename_cat(gsdlhome, "bin", "script", "lucene_query.pl") + "\"";
    132131  cmd += (text_t)" \""+indexname + (text_t)"\" \"" + escaped_utf8querystring + (text_t)"\"";
    133132  cerr << "Lucene command: " << cmd << endl;
     
    135134  text_t xml_text = "";
    136135
     136  // I don't want to do this, but I have to.
     137  text_t gsdlhome_env = "GSDLHOME=" + gsdlhome;
     138  putenv(gsdlhome_env.getcstr());
     139
    137140#ifdef __WIN32__
     141  putenv("GSDLOS=windows");
     142
    138143  //FILE *PIN = _popen(cmd.getcstr(), "r"); // didn't seem to work
    139144  cmd = (text_t)"perl -S "+cmd;
     
    154159  }
    155160#else
     161  putenv("GSDLOS=linux");
     162
    156163  FILE *PIN = popen(cmd.getcstr(), "r");
    157164
     
    169176
    170177#endif
     178
    171179  expat_resultset(xml_text,queryresult);
    172180 
     
    344352}
    345353
    346 
    347 
    348 
    349 
     354void lucenesearchclass::set_gsdlhome (const text_t &gh)
     355{
     356  gsdlhome = gh;
     357}
  • trunk/gsdl/src/colservr/lucenesearch.h

    r9937 r12246  
    7575  */
    7676  void set_gdbm_level(const text_t &level);
     77  text_t gdbm_level; // the default level used for retrieval, and in the gdbm file
    7778
    7879  // used to clear any cached databases for persistent versions of
     
    8081  void unload_database ();
    8182
    82   text_t gdbm_level; // the default level used for retrieval, and in the gdbm file
     83  void set_gsdlhome (const text_t &gh);
     84
    8385 protected:
    8486  text_t getindexsuffix(const queryparamclass &qp);
     87
     88 private:
     89  text_t gsdlhome;
     90
    8591};
    8692
Note: See TracChangeset for help on using the changeset viewer.