mhs-xapian 1.0.18a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. data/.gitignore +3 -0
  2. data/AUTHORS +1 -0
  3. data/COPYING +340 -0
  4. data/ChangeLog +5876 -0
  5. data/HACKING +101 -0
  6. data/INSTALL +293 -0
  7. data/Makefile +722 -0
  8. data/Makefile.am +26 -0
  9. data/Makefile.in +722 -0
  10. data/NEWS +2110 -0
  11. data/README +59 -0
  12. data/Rakefile +51 -0
  13. data/TODO +47 -0
  14. data/aclocal.m4 +7675 -0
  15. data/config.guess +1501 -0
  16. data/config.h +56 -0
  17. data/config.h.in +55 -0
  18. data/config.status +1298 -0
  19. data/config.sub +1705 -0
  20. data/configure +18536 -0
  21. data/configure.ac +944 -0
  22. data/csharp/.deps/xapian_wrap.Plo +1 -0
  23. data/csharp/AssemblyInfo.cs +40 -0
  24. data/csharp/AssemblyInfo.cs.in +40 -0
  25. data/csharp/Auto.cs +46 -0
  26. data/csharp/BM25Weight.cs +107 -0
  27. data/csharp/BoolWeight.cs +103 -0
  28. data/csharp/Database.cs +275 -0
  29. data/csharp/DateValueRangeProcessor.cs +61 -0
  30. data/csharp/Document.cs +177 -0
  31. data/csharp/ESet.cs +94 -0
  32. data/csharp/ESetIterator.cs +117 -0
  33. data/csharp/Enquire.cs +274 -0
  34. data/csharp/ExpandDecider.cs +76 -0
  35. data/csharp/Flint.cs +58 -0
  36. data/csharp/InMemory.cs +46 -0
  37. data/csharp/MSet.cs +193 -0
  38. data/csharp/MSetIterator.cs +141 -0
  39. data/csharp/Makefile +868 -0
  40. data/csharp/Makefile.am +106 -0
  41. data/csharp/Makefile.in +868 -0
  42. data/csharp/MatchDecider.cs +76 -0
  43. data/csharp/MultiValueSorter.cs +63 -0
  44. data/csharp/NumberValueRangeProcessor.cs +61 -0
  45. data/csharp/PositionIterator.cs +101 -0
  46. data/csharp/PostingIterator.cs +125 -0
  47. data/csharp/Quartz.cs +58 -0
  48. data/csharp/Query.cs +150 -0
  49. data/csharp/QueryParser.cs +174 -0
  50. data/csharp/RSet.cs +102 -0
  51. data/csharp/Remote.cs +100 -0
  52. data/csharp/SWIGTYPE_p_std__string.cs +30 -0
  53. data/csharp/SWIGTYPE_p_std__vectorTXapian__Query_t.cs +30 -0
  54. data/csharp/SWIGTYPE_p_std__vectorTstd__string_t.cs +30 -0
  55. data/csharp/SimpleStopper.cs +64 -0
  56. data/csharp/SmokeTest.cs +178 -0
  57. data/csharp/Sorter.cs +76 -0
  58. data/csharp/Stem.cs +66 -0
  59. data/csharp/Stopper.cs +91 -0
  60. data/csharp/StringValueRangeProcessor.cs +53 -0
  61. data/csharp/TermGenerator.cs +152 -0
  62. data/csharp/TermIterator.cs +125 -0
  63. data/csharp/TradWeight.cs +107 -0
  64. data/csharp/ValueIterator.cs +102 -0
  65. data/csharp/ValueRangeProcessor.cs +76 -0
  66. data/csharp/Version.cs +60 -0
  67. data/csharp/Weight.cs +93 -0
  68. data/csharp/WritableDatabase.cs +153 -0
  69. data/csharp/Xapian.cs +65 -0
  70. data/csharp/XapianPINVOKE.cs +1527 -0
  71. data/csharp/docs/Makefile +450 -0
  72. data/csharp/docs/Makefile.am +16 -0
  73. data/csharp/docs/Makefile.in +450 -0
  74. data/csharp/docs/examples/SimpleExpand.cs +109 -0
  75. data/csharp/docs/examples/SimpleIndex.cs +71 -0
  76. data/csharp/docs/examples/SimpleSearch.cs +78 -0
  77. data/csharp/docs/index.html +211 -0
  78. data/csharp/util.i +233 -0
  79. data/csharp/xapian_wrap.cc +10338 -0
  80. data/csharp/xapian_wrap.h +93 -0
  81. data/depcomp +632 -0
  82. data/extconf.rb +20 -0
  83. data/generic/except.i +80 -0
  84. data/generic/generic.mk +48 -0
  85. data/install-sh +520 -0
  86. data/java-swig/.deps/xapian_wrap.Plo +1 -0
  87. data/java-swig/Auto.java +35 -0
  88. data/java-swig/BM25Weight.java +81 -0
  89. data/java-swig/BoolWeight.java +77 -0
  90. data/java-swig/Database.java +195 -0
  91. data/java-swig/DateValueRangeProcessor.java +51 -0
  92. data/java-swig/Document.java +135 -0
  93. data/java-swig/ESet.java +71 -0
  94. data/java-swig/ESetIterator.java +71 -0
  95. data/java-swig/Enquire.java +246 -0
  96. data/java-swig/ExpandDecider.java +59 -0
  97. data/java-swig/Flint.java +43 -0
  98. data/java-swig/InMemory.java +35 -0
  99. data/java-swig/MSet.java +143 -0
  100. data/java-swig/MSetIterator.java +87 -0
  101. data/java-swig/Makefile +781 -0
  102. data/java-swig/Makefile.am +132 -0
  103. data/java-swig/Makefile.in +781 -0
  104. data/java-swig/MatchDecider.java +59 -0
  105. data/java-swig/MultiValueSorter.java +51 -0
  106. data/java-swig/NumberValueRangeProcessor.java +51 -0
  107. data/java-swig/PositionIterator.java +63 -0
  108. data/java-swig/PostingIterator.java +83 -0
  109. data/java-swig/Quartz.java +43 -0
  110. data/java-swig/Query.java +189 -0
  111. data/java-swig/QueryParser.java +214 -0
  112. data/java-swig/RSet.java +79 -0
  113. data/java-swig/Remote.java +71 -0
  114. data/java-swig/SWIGTYPE_p_std__string.java +25 -0
  115. data/java-swig/SimpleStopper.java +51 -0
  116. data/java-swig/SmokeTest.java +161 -0
  117. data/java-swig/Sorter.java +59 -0
  118. data/java-swig/Stem.java +51 -0
  119. data/java-swig/Stopper.java +63 -0
  120. data/java-swig/StringValueRangeProcessor.java +43 -0
  121. data/java-swig/TermGenerator.java +158 -0
  122. data/java-swig/TermIterator.java +83 -0
  123. data/java-swig/TradWeight.java +81 -0
  124. data/java-swig/ValueIterator.java +67 -0
  125. data/java-swig/ValueRangeProcessor.java +59 -0
  126. data/java-swig/Version.java +47 -0
  127. data/java-swig/Weight.java +68 -0
  128. data/java-swig/WritableDatabase.java +123 -0
  129. data/java-swig/Xapian.java +39 -0
  130. data/java-swig/XapianConstants.java +15 -0
  131. data/java-swig/XapianJNI.java +508 -0
  132. data/java-swig/run-java-test +6 -0
  133. data/java-swig/xapian_wrap.cc +12594 -0
  134. data/java-swig/xapian_wrap.h +91 -0
  135. data/java/Makefile +660 -0
  136. data/java/Makefile.am +35 -0
  137. data/java/Makefile.in +660 -0
  138. data/java/README +76 -0
  139. data/java/SmokeTest.java +148 -0
  140. data/java/native/.deps/Database.Plo +1 -0
  141. data/java/native/.deps/Document.Plo +1 -0
  142. data/java/native/.deps/ESet.Plo +1 -0
  143. data/java/native/.deps/ESetIterator.Plo +1 -0
  144. data/java/native/.deps/Enquire.Plo +1 -0
  145. data/java/native/.deps/MSet.Plo +1 -0
  146. data/java/native/.deps/MSetIterator.Plo +1 -0
  147. data/java/native/.deps/PositionIterator.Plo +1 -0
  148. data/java/native/.deps/Query.Plo +1 -0
  149. data/java/native/.deps/RSet.Plo +1 -0
  150. data/java/native/.deps/Stem.Plo +1 -0
  151. data/java/native/.deps/TermIterator.Plo +1 -0
  152. data/java/native/.deps/WritableDatabase.Plo +1 -0
  153. data/java/native/.deps/org_xapian_XapianJNI.Plo +1 -0
  154. data/java/native/.deps/utils.Plo +1 -0
  155. data/java/native/Database.cc +222 -0
  156. data/java/native/Document.cc +173 -0
  157. data/java/native/ESet.cc +79 -0
  158. data/java/native/ESetIterator.cc +82 -0
  159. data/java/native/Enquire.cc +271 -0
  160. data/java/native/MSet.cc +169 -0
  161. data/java/native/MSetIterator.cc +107 -0
  162. data/java/native/Makefile +594 -0
  163. data/java/native/Makefile.am +51 -0
  164. data/java/native/Makefile.in +594 -0
  165. data/java/native/PositionIterator.cc +64 -0
  166. data/java/native/Query.cc +180 -0
  167. data/java/native/RSet.cc +98 -0
  168. data/java/native/Stem.cc +75 -0
  169. data/java/native/TermIterator.cc +107 -0
  170. data/java/native/WritableDatabase.cc +118 -0
  171. data/java/native/XapianObjectHolder.h +115 -0
  172. data/java/native/org_xapian_XapianJNI.cc +78 -0
  173. data/java/native/org_xapian_XapianJNI.h +1369 -0
  174. data/java/native/utils.cc +51 -0
  175. data/java/native/xapian_jni.h +116 -0
  176. data/java/org/xapian/Database.java +148 -0
  177. data/java/org/xapian/Document.java +135 -0
  178. data/java/org/xapian/ESet.java +66 -0
  179. data/java/org/xapian/ESetIterator.java +97 -0
  180. data/java/org/xapian/Enquire.java +136 -0
  181. data/java/org/xapian/ExpandDecider.java +30 -0
  182. data/java/org/xapian/MSet.java +104 -0
  183. data/java/org/xapian/MSetIterator.java +132 -0
  184. data/java/org/xapian/Makefile +580 -0
  185. data/java/org/xapian/Makefile.am +38 -0
  186. data/java/org/xapian/Makefile.in +580 -0
  187. data/java/org/xapian/MatchDecider.java +30 -0
  188. data/java/org/xapian/PositionIterator.java +89 -0
  189. data/java/org/xapian/Query.java +190 -0
  190. data/java/org/xapian/RSet.java +89 -0
  191. data/java/org/xapian/Stem.java +80 -0
  192. data/java/org/xapian/TermIterator.java +142 -0
  193. data/java/org/xapian/WritableDatabase.java +92 -0
  194. data/java/org/xapian/Xapian.java +114 -0
  195. data/java/org/xapian/XapianJNI.java +444 -0
  196. data/java/org/xapian/errors/AssertionError.java +40 -0
  197. data/java/org/xapian/errors/DatabaseCorruptError.java +40 -0
  198. data/java/org/xapian/errors/DatabaseError.java +40 -0
  199. data/java/org/xapian/errors/DatabaseLockError.java +40 -0
  200. data/java/org/xapian/errors/DatabaseModifiedError.java +40 -0
  201. data/java/org/xapian/errors/DatabaseOpeningError.java +40 -0
  202. data/java/org/xapian/errors/DocNotFoundError.java +40 -0
  203. data/java/org/xapian/errors/FeatureUnavailableError.java +40 -0
  204. data/java/org/xapian/errors/InternalError.java +40 -0
  205. data/java/org/xapian/errors/InvalidArgumentError.java +40 -0
  206. data/java/org/xapian/errors/InvalidOperationError.java +40 -0
  207. data/java/org/xapian/errors/LogicError.java +40 -0
  208. data/java/org/xapian/errors/Makefile +416 -0
  209. data/java/org/xapian/errors/Makefile.am +32 -0
  210. data/java/org/xapian/errors/Makefile.in +416 -0
  211. data/java/org/xapian/errors/NetworkError.java +40 -0
  212. data/java/org/xapian/errors/NetworkTimeoutError.java +40 -0
  213. data/java/org/xapian/errors/RangeError.java +40 -0
  214. data/java/org/xapian/errors/RuntimeError.java +40 -0
  215. data/java/org/xapian/errors/UnimplementedError.java +40 -0
  216. data/java/org/xapian/errors/XapianError.java +40 -0
  217. data/java/org/xapian/errors/XapianRuntimeError.java +49 -0
  218. data/java/org/xapian/examples/Makefile +391 -0
  219. data/java/org/xapian/examples/Makefile.am +8 -0
  220. data/java/org/xapian/examples/Makefile.in +391 -0
  221. data/java/org/xapian/examples/SimpleIndex.java +68 -0
  222. data/java/org/xapian/examples/SimpleSearch.java +71 -0
  223. data/java/run-java-test +6 -0
  224. data/libtool +7618 -0
  225. data/ltmain.sh +6956 -0
  226. data/mhs-xapian.gemspec +368 -0
  227. data/missing +378 -0
  228. data/php/.deps/xapian_wrap.Plo +1 -0
  229. data/php/Makefile +871 -0
  230. data/php/Makefile.am +82 -0
  231. data/php/Makefile.in +871 -0
  232. data/php/docs/Makefile +453 -0
  233. data/php/docs/Makefile.am +19 -0
  234. data/php/docs/Makefile.in +453 -0
  235. data/php/docs/examples/simpleexpand.php4 +108 -0
  236. data/php/docs/examples/simpleexpand.php5 +104 -0
  237. data/php/docs/examples/simpleindex.php4 +76 -0
  238. data/php/docs/examples/simpleindex.php5 +73 -0
  239. data/php/docs/examples/simplesearch.php4 +75 -0
  240. data/php/docs/examples/simplesearch.php5 +72 -0
  241. data/php/docs/index.html +313 -0
  242. data/php/except.i +98 -0
  243. data/php/php4/php_xapian.h +323 -0
  244. data/php/php4/xapian.php +32 -0
  245. data/php/php4/xapian_wrap.cc +27656 -0
  246. data/php/php5/php_xapian.h +319 -0
  247. data/php/php5/xapian.php +1566 -0
  248. data/php/php5/xapian_wrap.cc +24330 -0
  249. data/php/smoketest.php +246 -0
  250. data/php/smoketest4.php +84 -0
  251. data/php/smoketest5.php +79 -0
  252. data/php/util.i +187 -0
  253. data/python/.deps/xapian_wrap.Plo +1 -0
  254. data/python/Makefile +891 -0
  255. data/python/Makefile.am +105 -0
  256. data/python/Makefile.in +891 -0
  257. data/python/doccomments.i +5134 -0
  258. data/python/docs/Makefile +448 -0
  259. data/python/docs/Makefile.am +14 -0
  260. data/python/docs/Makefile.in +448 -0
  261. data/python/docs/examples/simpleexpand.py +98 -0
  262. data/python/docs/examples/simpleindex.py +65 -0
  263. data/python/docs/examples/simplematchdecider.py +78 -0
  264. data/python/docs/examples/simplesearch.py +65 -0
  265. data/python/docs/index.html +420 -0
  266. data/python/except.i +290 -0
  267. data/python/extra.i +1048 -0
  268. data/python/extracomments.i +28 -0
  269. data/python/generate-python-exceptions +189 -0
  270. data/python/generate-python-exceptions.in +189 -0
  271. data/python/modern/xapian.py +5662 -0
  272. data/python/modern/xapian_wrap.cc +35170 -0
  273. data/python/modern/xapian_wrap.h +244 -0
  274. data/python/pythontest.py +1110 -0
  275. data/python/smoketest.py +328 -0
  276. data/python/testsuite.py +382 -0
  277. data/python/util.i +517 -0
  278. data/ruby/.deps/xapian_wrap.Plo +494 -0
  279. data/ruby/.libs/_xapian.bundle +0 -0
  280. data/ruby/.libs/_xapian.bundle.dSYM/Contents/Info.plist +25 -0
  281. data/ruby/.libs/_xapian.bundle.dSYM/Contents/Resources/DWARF/_xapian.bundle +0 -0
  282. data/ruby/.libs/_xapian.la +35 -0
  283. data/ruby/.libs/_xapian.lai +35 -0
  284. data/ruby/Makefile +854 -0
  285. data/ruby/Makefile.am +62 -0
  286. data/ruby/Makefile.in +854 -0
  287. data/ruby/_xapian.la +35 -0
  288. data/ruby/docs/Makefile +487 -0
  289. data/ruby/docs/Makefile.am +50 -0
  290. data/ruby/docs/Makefile.in +487 -0
  291. data/ruby/docs/examples/simpleexpand.rb +98 -0
  292. data/ruby/docs/examples/simpleindex.rb +60 -0
  293. data/ruby/docs/examples/simplematchdecider.rb +74 -0
  294. data/ruby/docs/examples/simplesearch.rb +63 -0
  295. data/ruby/docs/index.html +197 -0
  296. data/ruby/smoketest.rb +211 -0
  297. data/ruby/util.i +232 -0
  298. data/ruby/xapian.rb +280 -0
  299. data/ruby/xapian_wrap.cc +25837 -0
  300. data/ruby/xapian_wrap.h +65 -0
  301. data/ruby/xapian_wrap.lo +12 -0
  302. data/skiptest +2 -0
  303. data/stamp-h1 +1 -0
  304. data/tcl8/.deps/xapian_wrap.Plo +1 -0
  305. data/tcl8/Makefile +835 -0
  306. data/tcl8/Makefile.am +49 -0
  307. data/tcl8/Makefile.in +835 -0
  308. data/tcl8/docs/Makefile +448 -0
  309. data/tcl8/docs/Makefile.am +14 -0
  310. data/tcl8/docs/Makefile.in +448 -0
  311. data/tcl8/docs/examples/simpleexpand.tcl +104 -0
  312. data/tcl8/docs/examples/simpleindex.tcl +68 -0
  313. data/tcl8/docs/examples/simplesearch.tcl +66 -0
  314. data/tcl8/docs/index.html +208 -0
  315. data/tcl8/except.i +48 -0
  316. data/tcl8/pkgIndex.tcl +1 -0
  317. data/tcl8/pkgIndex.tcl.in +1 -0
  318. data/tcl8/run-tcl-test +15 -0
  319. data/tcl8/runtest.tcl +29 -0
  320. data/tcl8/smoketest.tcl +155 -0
  321. data/tcl8/util.i +76 -0
  322. data/tcl8/xapian_wrap.cc +20900 -0
  323. data/xapian-bindings.spec +206 -0
  324. data/xapian-bindings.spec.in +206 -0
  325. data/xapian-version.h +1 -0
  326. data/xapian-version.h.in +1 -0
  327. data/xapian.i +939 -0
  328. metadata +395 -0
@@ -0,0 +1,108 @@
1
+ <?php
2
+ /* Simple example PHP4 script demonstrating query expansion.
3
+ *
4
+ * Copyright (C) 2007 Olly Betts
5
+ *
6
+ * This program is free software; you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation; either version 2 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ if (php_sapi_name() != "cli") {
22
+ print "This example script is written to run under the command line ('cli') version of\n";
23
+ print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
24
+ exit(1);
25
+ }
26
+
27
+ include "php4/xapian.php";
28
+
29
+ // PHP < 4.3.0 only sets $argc and $argv if 'register_globals' is on.
30
+ if (!isset($argc)) $argc = $_SERVER['argc'];
31
+ if (!isset($argv)) $argv = $_SERVER['argv'];
32
+
33
+ if ($argc < 3) {
34
+ print "Usage: {$argv[0]} PATH_TO_DATABASE QUERY [-- [DOCID...]]\n";
35
+ exit(1);
36
+ }
37
+
38
+ // Open the database for searching.
39
+ $database = new XapianDatabase($argv[1]);
40
+ if (!$database) {
41
+ print "Couldn't open database '{$argv[1]}'\n";
42
+ exit(1);
43
+ }
44
+
45
+ // Start an enquire session.
46
+ $enquire = new XapianEnquire($database);
47
+
48
+ // Combine command line arguments up to "--" with spaces between
49
+ // them, so that simple queries don't have to be quoted at the shell
50
+ // level.
51
+ $args = array_slice($argv, 2);
52
+ $separator = array_search("--", $args);
53
+
54
+ // In PHP < 4.2.0, array_search returns Null on failure.
55
+ if ($separator === Null || $separator === FALSE) {
56
+ $separator = count($args);
57
+ }
58
+
59
+ $query_string = join(" ", array_slice($args, 0, $separator);
60
+
61
+ $rset = new XapianRSet();
62
+ foreach (array_slice($args, $separator + 1) as $docid) {
63
+ $rset->add_document(intval($docid));
64
+ }
65
+
66
+ $qp = new XapianQueryParser();
67
+ $stemmer = new XapianStem("english");
68
+ $qp->set_stemmer($stemmer);
69
+ $qp->set_database($database);
70
+ $qp->set_stemming_strategy(XapianQueryParser_STEM_SOME);
71
+ $query = $qp->parse_query($query_string);
72
+ print "Parsed query is: {$query->get_description()}\n";
73
+
74
+ // Find the top 10 results for the query.
75
+ $enquire->set_query($query);
76
+ $matches = $enquire->get_mset(0, 10, $rset);
77
+
78
+ // Display the results.
79
+ print "{$matches->get_matches_estimated()} results found:\n";
80
+
81
+ $i = $matches->begin();
82
+ while (!$i->equals($matches->end())) {
83
+ $n = $i->get_rank() + 1;
84
+ $data = $i->get_document()->get_data();
85
+ print "$n: {$i->get_percent()}% docid={$i->get_docid()} [$data]\n\n";
86
+ $i->next();
87
+ }
88
+
89
+ // If no relevant docids were given, invent an RSet containing the top 5
90
+ // matches (or all the matches if there are less than 5).
91
+ if ($rset->is_empty()) {
92
+ $c = 5;
93
+ $i = $matches->begin();
94
+ while ($c-- && !$i->equals($matches->end())) {
95
+ $rset->add_document($i->get_docid());
96
+ $i->next();
97
+ }
98
+ }
99
+
100
+ // Generate an ESet containing terms that the user might want to add to
101
+ // the query.
102
+ $eset = $enquire->get_eset(10, $rset);
103
+
104
+ // List the terms.
105
+ for ($t = $eset->begin(); !$t->equals($eset->end()); $t->next()) {
106
+ print "{$t->get_term()}: weight = {$t->get_weight()}\n";
107
+ }
108
+ ?>
@@ -0,0 +1,104 @@
1
+ <?php
2
+ /* Simple example PHP5 script demonstrating query expansion.
3
+ *
4
+ * Copyright (C) 2007 Olly Betts
5
+ *
6
+ * This program is free software; you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation; either version 2 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ if (php_sapi_name() != "cli") {
22
+ print "This example script is written to run under the command line ('cli') version of\n";
23
+ print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
24
+ exit(1);
25
+ }
26
+
27
+ include "php5/xapian.php";
28
+
29
+ if ($argc < 3) {
30
+ print "Usage: {$argv[0]} PATH_TO_DATABASE QUERY [-- [DOCID...]]\n";
31
+ exit(1);
32
+ }
33
+
34
+ try {
35
+ // Open the database for searching.
36
+ $database = new XapianDatabase($argv[1]);
37
+
38
+ // Start an enquire session.
39
+ $enquire = new XapianEnquire($database);
40
+
41
+ // Combine command line arguments up to "--" with spaces between
42
+ // them, so that simple queries don't have to be quoted at the shell
43
+ // level.
44
+ $args = array_slice($argv, 2);
45
+ $separator = array_search("--", $args);
46
+
47
+ if ($separator === FALSE) {
48
+ $separator = count($args);
49
+ }
50
+
51
+ $query_string = join(" ", array_slice($args, 0, $separator));
52
+
53
+ $rset = new XapianRSet();
54
+ foreach (array_slice($args, $separator + 1) as $docid) {
55
+ $rset->add_document(intval($docid));
56
+ }
57
+
58
+ $qp = new XapianQueryParser();
59
+ $stemmer = new XapianStem("english");
60
+ $qp->set_stemmer($stemmer);
61
+ $qp->set_database($database);
62
+ $qp->set_stemming_strategy(XapianQueryParser::STEM_SOME);
63
+ $query = $qp->parse_query($query_string);
64
+ print "Parsed query is: {$query->get_description()}\n";
65
+
66
+ // Find the top 10 results for the query.
67
+ $enquire->set_query($query);
68
+ $matches = $enquire->get_mset(0, 10, $rset);
69
+
70
+ // Display the results.
71
+ print "{$matches->get_matches_estimated()} results found:\n";
72
+
73
+ $i = $matches->begin();
74
+ while (!$i->equals($matches->end())) {
75
+ $n = $i->get_rank() + 1;
76
+ $data = $i->get_document()->get_data();
77
+ print "$n: {$i->get_percent()}% docid={$i->get_docid()} [$data]\n\n";
78
+ $i->next();
79
+ }
80
+
81
+ // If no relevant docids were given, invent an RSet containing the top 5
82
+ // matches (or all the matches if there are less than 5).
83
+ if ($rset->is_empty()) {
84
+ $c = 5;
85
+ $i = $matches->begin();
86
+ while ($c-- && !$i->equals($matches->end())) {
87
+ $rset->add_document($i->get_docid());
88
+ $i->next();
89
+ }
90
+ }
91
+
92
+ // Generate an ESet containing terms that the user might want to add to
93
+ // the query.
94
+ $eset = $enquire->get_eset(10, $rset);
95
+
96
+ // List the terms.
97
+ for ($t = $eset->begin(); !$t->equals($eset->end()); $t->next()) {
98
+ print "{$t->get_term()}: weight = {$t->get_weight()}\n";
99
+ }
100
+ } catch (Exception $e) {
101
+ print $e->getMessage() . "\n";
102
+ exit(1);
103
+ }
104
+ ?>
@@ -0,0 +1,76 @@
1
+ <?php
2
+ /* PHP4 script to index each paragraph of a text file as a Xapian document.
3
+ *
4
+ * Copyright (C) 2007 Olly Betts
5
+ *
6
+ * This program is free software; you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation; either version 2 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ if (php_sapi_name() != "cli") {
22
+ print "This example script is written to run under the command line ('cli') version of\n";
23
+ print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
24
+ exit(1);
25
+ }
26
+
27
+ include "php4/xapian.php";
28
+
29
+ // PHP < 4.3.0 only sets $argc and $argv if 'register_globals' is on.
30
+ if (!isset($argc)) $argc = $_SERVER['argc'];
31
+ if (!isset($argv)) $argv = $_SERVER['argv'];
32
+
33
+ if ($argc != 2) {
34
+ print "Usage: {$argv[0]} PATH_TO_DATABASE\n";
35
+ exit(1);
36
+ }
37
+
38
+ // Open the database for update, creating a new database if necessary.
39
+ $database = new XapianWritableDatabase($argv[1], Xapian_DB_CREATE_OR_OPEN);
40
+ if (!$database) {
41
+ print "Couldn't create or open database '{$argv[1]}' for indexing\n";
42
+ exit(1);
43
+ }
44
+
45
+ $indexer = new XapianTermGenerator();
46
+ $stemmer = new XapianStem("english");
47
+ $indexer->set_stemmer($stemmer);
48
+
49
+ $para = '';
50
+ $lines = file("php://stdin");
51
+ foreach ($lines as $line) {
52
+ $line = rtrim($line);
53
+ if ($line == "" && $para != "") {
54
+ // We've reached the end of a paragraph, so index it.
55
+ $doc = new XapianDocument();
56
+ $doc->set_data($para);
57
+
58
+ $indexer->set_document($doc);
59
+ $indexer->index_text($para);
60
+
61
+ // Add the document to the database.
62
+ $database->add_document($doc);
63
+
64
+ $para = "";
65
+ } else {
66
+ if ($para != "") {
67
+ $para .= " ";
68
+ }
69
+ $para .= $line;
70
+ }
71
+ }
72
+
73
+ // Set the database handle to Null to ensure that it gets closed
74
+ // down cleanly or unflushed changes may be lost.
75
+ $database = Null;
76
+ ?>
@@ -0,0 +1,73 @@
1
+ <?php
2
+ /* PHP5 script to index each paragraph of a text file as a Xapian document.
3
+ *
4
+ * Copyright (C) 2007 Olly Betts
5
+ *
6
+ * This program is free software; you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation; either version 2 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ if (php_sapi_name() != "cli") {
22
+ print "This example script is written to run under the command line ('cli') version of\n";
23
+ print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
24
+ exit(1);
25
+ }
26
+
27
+ include "php5/xapian.php";
28
+
29
+ if ($argc != 2) {
30
+ print "Usage: {$argv[0]} PATH_TO_DATABASE\n";
31
+ exit(1);
32
+ }
33
+
34
+ try {
35
+ // Open the database for update, creating a new database if necessary.
36
+ $database = new XapianWritableDatabase($argv[1], Xapian::DB_CREATE_OR_OPEN);
37
+
38
+ $indexer = new XapianTermGenerator();
39
+ $stemmer = new XapianStem("english");
40
+ $indexer->set_stemmer($stemmer);
41
+
42
+ $para = '';
43
+ $lines = file("php://stdin");
44
+ foreach ($lines as $line) {
45
+ $line = rtrim($line);
46
+ if ($line == "" && $para != "") {
47
+ // We've reached the end of a paragraph, so index it.
48
+ $doc = new XapianDocument();
49
+ $doc->set_data($para);
50
+
51
+ $indexer->set_document($doc);
52
+ $indexer->index_text($para);
53
+
54
+ // Add the document to the database.
55
+ $database->add_document($doc);
56
+
57
+ $para = "";
58
+ } else {
59
+ if ($para != "") {
60
+ $para .= " ";
61
+ }
62
+ $para .= $line;
63
+ }
64
+ }
65
+
66
+ // Set the database handle to Null to ensure that it gets closed
67
+ // down cleanly or unflushed changes may be lost.
68
+ $database = Null;
69
+ } catch (Exception $e) {
70
+ print $e->getMessage() . "\n";
71
+ exit(1);
72
+ }
73
+ ?>
@@ -0,0 +1,75 @@
1
+ <?php
2
+ /* Simple command-line search PHP4 script.
3
+ *
4
+ * Copyright (C) 2007 Olly Betts
5
+ *
6
+ * This program is free software; you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation; either version 2 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ if (php_sapi_name() != "cli") {
22
+ print "This example script is written to run under the command line ('cli') version of\n";
23
+ print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
24
+ exit(1);
25
+ }
26
+
27
+ include "php4/xapian.php";
28
+
29
+ // PHP < 4.3.0 only sets $argc and $argv if 'register_globals' is on.
30
+ if (!isset($argc)) $argc = $_SERVER['argc'];
31
+ if (!isset($argv)) $argv = $_SERVER['argv'];
32
+
33
+ if ($argc < 3) {
34
+ print "Usage: {$argv[0]} PATH_TO_DATABASE QUERY\n";
35
+ exit(1);
36
+ }
37
+
38
+ // Open the database for searching.
39
+ $database = new XapianDatabase($argv[1]);
40
+ if (!$database) {
41
+ print "Couldn't open database '{$argv[1]}'\n";
42
+ exit(1);
43
+ }
44
+
45
+ // Start an enquire session.
46
+ $enquire = new XapianEnquire($database);
47
+
48
+ // Combine the rest of the command line arguments with spaces between
49
+ // them, so that simple queries don't have to be quoted at the shell
50
+ // level.
51
+ $query_string = join(" ", array_slice($argv, 2));
52
+
53
+ $qp = new XapianQueryParser();
54
+ $stemmer = new XapianStem("english");
55
+ $qp->set_stemmer($stemmer);
56
+ $qp->set_database($database);
57
+ $qp->set_stemming_strategy(XapianQueryParser_STEM_SOME);
58
+ $query = $qp->parse_query($query_string);
59
+ print "Parsed query is: {$query->get_description()}\n";
60
+
61
+ // Find the top 10 results for the query.
62
+ $enquire->set_query($query);
63
+ $matches = $enquire->get_mset(0, 10);
64
+
65
+ // Display the results.
66
+ print "{$matches->get_matches_estimated()} results found:\n";
67
+
68
+ $i = $matches->begin();
69
+ while (!$i->equals($matches->end())) {
70
+ $n = $i->get_rank() + 1;
71
+ $data = $i->get_document()->get_data();
72
+ print "$n: {$i->get_percent()}% docid={$i->get_docid()} [$data]\n\n";
73
+ $i->next();
74
+ }
75
+ ?>
@@ -0,0 +1,72 @@
1
+ <?php
2
+ /* Simple command-line search PHP5 script.
3
+ *
4
+ * Copyright (C) 2007 Olly Betts
5
+ *
6
+ * This program is free software; you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation; either version 2 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ if (php_sapi_name() != "cli") {
22
+ print "This example script is written to run under the command line ('cli') version of\n";
23
+ print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
24
+ exit(1);
25
+ }
26
+
27
+ include "php5/xapian.php";
28
+
29
+ if ($argc < 3) {
30
+ print "Usage: {$argv[0]} PATH_TO_DATABASE QUERY\n";
31
+ exit(1);
32
+ }
33
+
34
+ // Open the database for searching.
35
+ try {
36
+ $database = new XapianDatabase($argv[1]);
37
+
38
+ // Start an enquire session.
39
+ $enquire = new XapianEnquire($database);
40
+
41
+ // Combine the rest of the command line arguments with spaces between
42
+ // them, so that simple queries don't have to be quoted at the shell
43
+ // level.
44
+ $query_string = join(" ", array_slice($argv, 2));
45
+
46
+ $qp = new XapianQueryParser();
47
+ $stemmer = new XapianStem("english");
48
+ $qp->set_stemmer($stemmer);
49
+ $qp->set_database($database);
50
+ $qp->set_stemming_strategy(XapianQueryParser::STEM_SOME);
51
+ $query = $qp->parse_query($query_string);
52
+ print "Parsed query is: {$query->get_description()}\n";
53
+
54
+ // Find the top 10 results for the query.
55
+ $enquire->set_query($query);
56
+ $matches = $enquire->get_mset(0, 10);
57
+
58
+ // Display the results.
59
+ print "{$matches->get_matches_estimated()} results found:\n";
60
+
61
+ $i = $matches->begin();
62
+ while (!$i->equals($matches->end())) {
63
+ $n = $i->get_rank() + 1;
64
+ $data = $i->get_document()->get_data();
65
+ print "$n: {$i->get_percent()}% docid={$i->get_docid()} [$data]\n\n";
66
+ $i->next();
67
+ }
68
+ } catch (Exception $e) {
69
+ print $e->getMessage() . "\n";
70
+ exit(1);
71
+ }
72
+ ?>