source: main/trunk/greenstone2/runtime-src/src/colservr/search.h@ 28762

Last change on this file since 28762 was 8024, checked in by davidb, 20 years ago

Renaming of variables and member functions using contstructs such as
'mgsearchptr' and the like to 'textsearchptr' to better reflect what
the item represents.

  • Property svn:keywords set to Author Date Id Revision
File size: 2.6 KB
Line 
1/**********************************************************************
2 *
3 * search.h -- abstract search class for mg systems
4 * Copyright (C) 1999 The New Zealand Digital Library Project
5 *
6 * A component of the Greenstone digital library software
7 * from the New Zealand Digital Library Project at the
8 * University of Waikato, New Zealand.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 *
24 *********************************************************************/
25
26
27#ifndef SEARCH_H
28#define SEARCH_H
29
30#include "text_t.h"
31#include "querycache.h"
32
33#define RESULTCACHESIZE 10
34#define MAXNUMDOCS 1000000
35#define MAXNUMTERMS 100
36
37class searchclass {
38public:
39 searchclass ();
40 virtual ~searchclass ();
41
42 // in subclass, should be over-rided to return "mg" or "mgpp"
43 virtual text_t get_textindex_type()=0;
44 // the index directory must be set before any searching
45 // is done
46 virtual void setcollectdir (const text_t &thecollectdir);
47
48 // the search results are returned in queryresults
49 // search returns 'true' if it was able to do a search
50 virtual bool search(const queryparamclass &queryparams,
51 queryresultsclass &queryresults)=0;
52
53 // the document text for 'docnum' is placed in 'output'
54 // docTargetDocument returns 'true' if it was able to
55 // try to get a document
56 // collection is needed to see if an index from the
57 // collection is loaded. If no index has been loaded
58 // defaultindex is needed to load one
59 virtual bool docTargetDocument(const text_t &defaultindex,
60 const text_t &defaultsubcollection,
61 const text_t &defaultlanguage,
62 const text_t &collection,
63 int docnum,
64 text_t &output)=0;
65
66 // unload_database clears any cached databases -
67 // this is useful when attempting to
68 // completely remove all trace of a collectionserver at runtime (when
69 // using a persistent version of Greenstone like the windows local
70 // library)
71 virtual void unload_database ()=0;
72
73protected:
74 querycache *cache;
75 text_t collectdir; // the collection directory
76
77};
78
79
80#endif
Note: See TracBrowser for help on using the repository browser.