1 MODULE = Search::Xapian PACKAGE = Search::Xapian::Enquire
2
3 PROTOTYPES: ENABLE
4
5 Enquire *
new(databases)6 Enquire::new(databases)
7 Database * databases
8 CODE:
9 try {
10 RETVAL = XAPIAN_PERL_NEW(Enquire, (*databases));
11 } catch (...) {
12 handle_exception();
13 }
14 OUTPUT:
15 RETVAL
16
17 void
set_query1(query)18 Enquire::set_query1(query)
19 Query * query
20 CODE:
21 try {
22 THIS->set_query(*query);
23 } catch (...) {
24 handle_exception();
25 }
26
27 void
set_query2(query,len)28 Enquire::set_query2(query, len)
29 Query * query
30 termcount len
31 CODE:
32 try {
33 THIS->set_query(*query, len);
34 } catch (...) {
35 handle_exception();
36 }
37
38 Query *
get_query()39 Enquire::get_query()
40 CODE:
41 try {
42 RETVAL = new Query(THIS->get_query());
43 } catch (...) {
44 handle_exception();
45 }
46 OUTPUT:
47 RETVAL
48
49 void
50 Enquire::set_collapse_key(collapse_key, collapse_max = 1)
51 valueno collapse_key
52 doccount collapse_max
53 CODE:
54 try {
55 THIS->set_collapse_key(collapse_key, collapse_max);
catch(...)56 } catch (...) {
57 handle_exception();
58 }
59
60 void
set_docid_order(order)61 Enquire::set_docid_order(order)
62 int order
63 CODE:
64 try {
65 THIS->set_docid_order(static_cast<Enquire::docid_order>(order));
66 } catch (...) {
67 handle_exception();
68 }
69
70 void
71 Enquire::set_cutoff(percent_cutoff, weight_cutoff = NO_INIT)
72 int percent_cutoff
73 double weight_cutoff
74 CODE:
75 try {
76 if (items == 3) { /* items includes the hidden this pointer */
77 THIS->set_cutoff(percent_cutoff, weight_cutoff);
78 } else {
79 THIS->set_cutoff(percent_cutoff);
80 }
catch(...)81 } catch (...) {
82 handle_exception();
83 }
84
85 void
86 Enquire::set_sort_by_relevance()
87 CODE:
88 // Clear reference to any currently set sorter object.
89 XAPIAN_PERL_REF(Enquire, THIS, sorter, NULL);
90 THIS->set_sort_by_relevance();
91
92 void
93 Enquire::set_sort_by_value(sort_key, ascending = true)
94 valueno sort_key
95 bool ascending
96 CODE:
97 // Clear reference to any currently set sorter object.
98 XAPIAN_PERL_REF(Enquire, THIS, sorter, NULL);
99 try {
100 THIS->set_sort_by_value(sort_key, ascending);
catch(...)101 } catch (...) {
102 handle_exception();
103 }
104
105 void
106 Enquire::set_sort_by_value_then_relevance(sort_key, ascending = true)
107 valueno sort_key
108 bool ascending
109 CODE:
110 // Clear reference to any currently set sorter object.
111 XAPIAN_PERL_REF(Enquire, THIS, sorter, NULL);
112 try {
113 THIS->set_sort_by_value_then_relevance(sort_key, ascending);
catch(...)114 } catch (...) {
115 handle_exception();
116 }
117
118 void
119 Enquire::set_sort_by_relevance_then_value(sort_key, ascending = true)
120 valueno sort_key
121 bool ascending
122 CODE:
123 // Clear reference to any currently set sorter object.
124 XAPIAN_PERL_REF(Enquire, THIS, sorter, NULL);
125 try {
126 THIS->set_sort_by_relevance_then_value(sort_key, ascending);
catch(...)127 } catch (...) {
128 handle_exception();
129 }
130
131 void
132 Enquire::set_sort_by_key(sorter, ascending = true)
133 MultiValueKeyMaker * sorter
134 bool ascending
135 CODE:
136 // Keep a reference to the currently set object.
137 XAPIAN_PERL_REF(Enquire, THIS, sorter, ST(1));
138 try {
139 THIS->set_sort_by_key(sorter, ascending);
catch(...)140 } catch (...) {
141 handle_exception();
142 }
143
144 void
145 Enquire::set_sort_by_key_then_relevance(sorter, ascending = true)
146 MultiValueKeyMaker * sorter
147 bool ascending
148 CODE:
149 // Keep a reference to the currently set object.
150 XAPIAN_PERL_REF(Enquire, THIS, sorter, ST(1));
151 try {
152 THIS->set_sort_by_key_then_relevance(sorter, ascending);
catch(...)153 } catch (...) {
154 handle_exception();
155 }
156
157 void
158 Enquire::set_sort_by_relevance_then_key(sorter, ascending = true)
159 MultiValueKeyMaker * sorter
160 bool ascending
161 CODE:
162 // Keep a reference to the currently set object.
163 XAPIAN_PERL_REF(Enquire, THIS, sorter, ST(1));
164 try {
165 THIS->set_sort_by_relevance_then_key(sorter, ascending);
catch(...)166 } catch (...) {
167 handle_exception();
168 }
169
170 MSet *
171 Enquire::get_mset1(first, maxitems, checkatleast = NO_INIT, rset = NO_INIT, func = NO_INIT)
172 doccount first
173 doccount maxitems
174 doccount checkatleast
175 RSet * rset
176 SV * func
177 CODE:
178 try {
179 MSet mset;
180 switch (items) { /* items includes the hidden this pointer */
181 case 3:
182 mset = THIS->get_mset(first, maxitems);
183 break;
184 case 4:
185 mset = THIS->get_mset(first, maxitems, checkatleast);
186 break;
187 case 5:
188 mset = THIS->get_mset(first, maxitems, checkatleast, rset);
189 break;
190 case 6: {
191 perlMatchDecider d(func);
192 mset = THIS->get_mset(first, maxitems, checkatleast, rset, &d);
193 break;
194 }
195 default:
196 croak("Bad parameter count for get_mset1");
197 }
198 RETVAL = new MSet(mset);
catch(...)199 } catch (...) {
200 handle_exception();
201 }
202 OUTPUT:
203 RETVAL
204
205 MSet *
get_mset2(first,maxitems,func)206 Enquire::get_mset2(first, maxitems, func)
207 doccount first
208 doccount maxitems
209 SV * func
210 CODE:
211 try {
212 perlMatchDecider d(func);
213 RETVAL = new MSet(THIS->get_mset(first, maxitems, 0, NULL, &d));
214 } catch (...) {
215 handle_exception();
216 }
217 OUTPUT:
218 RETVAL
219
220 ESet *
221 Enquire::get_eset(maxitems, rset, func = NO_INIT)
222 doccount maxitems
223 RSet * rset
224 SV * func
225 CODE:
226 try {
227 ESet eset;
228 switch (items) { /* items includes the hidden this pointer */
229 case 3:
230 eset = THIS->get_eset(maxitems, *rset);
231 break;
232 case 4: {
233 perlExpandDecider d(func);
234 eset = THIS->get_eset(maxitems, *rset, &d);
235 break;
236 }
237 default:
238 croak("Bad parameter count for get_eset");
239 }
240 RETVAL = new ESet(eset);
catch(...)241 } catch (...) {
242 handle_exception();
243 }
244 OUTPUT:
245 RETVAL
246
247 TermIterator *
get_matching_terms_begin1(docid did)248 Enquire::get_matching_terms_begin1(docid did)
249 CODE:
250 try {
251 RETVAL = new TermIterator(THIS->get_matching_terms_begin(did));
252 } catch (...) {
253 handle_exception();
254 }
255 OUTPUT:
256 RETVAL
257
258 TermIterator *
get_matching_terms_begin2(it)259 Enquire::get_matching_terms_begin2(it)
260 MSetIterator * it
261 CODE:
262 try {
263 RETVAL = new TermIterator(THIS->get_matching_terms_begin(* it));
264 } catch (...) {
265 handle_exception();
266 }
267 OUTPUT:
268 RETVAL
269
270 TermIterator *
get_matching_terms_end1(docid did)271 Enquire::get_matching_terms_end1(docid did)
272 CODE:
273 try {
274 RETVAL = new TermIterator(THIS->get_matching_terms_end(did));
275 } catch (...) {
276 handle_exception();
277 }
278 OUTPUT:
279 RETVAL
280
281 TermIterator *
get_matching_terms_end2(it)282 Enquire::get_matching_terms_end2(it)
283 MSetIterator * it
284 CODE:
285 try {
286 RETVAL = new TermIterator(THIS->get_matching_terms_end(* it));
287 } catch (...) {
288 handle_exception();
289 }
290 OUTPUT:
291 RETVAL
292
293 void
set_weighting_scheme(weight_)294 Enquire::set_weighting_scheme(weight_)
295 Weight * weight_
296 CODE:
297 try {
298 THIS->set_weighting_scheme(*weight_);
299 } catch (...) {
300 handle_exception();
301 }
302
303 string
get_description()304 Enquire::get_description()
305
306 void
307 Enquire::add_matchspy(MatchSpy * spy)
308 CODE:
309 try {
310 XAPIAN_PERL_REF(Enquire, THIS, matchspy, ST(1));
311 THIS->add_matchspy(spy);
312 } catch (...) {
313 handle_exception();
314 }
315
316 void
clear_matchspies()317 Enquire::clear_matchspies()
318 CODE:
319 try {
320 XAPIAN_PERL_REF(Enquire, THIS, clear_matchspies, NULL);
321 THIS->clear_matchspies();
322 } catch (...) {
323 handle_exception();
324 }
325
326 void
327 Enquire::DESTROY()
328 CODE:
329 XAPIAN_PERL_DESTROY(Enquire, THIS);
330