mhs-xapian 1.0.18a

Sign up to get free protection for your applications and to get access to all the features.
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,206 @@
1
+ # RedHat-style .spec file for Xapian
2
+ # xapian-bindings.spec. Generated from xapian-bindings.spec.in by configure.
3
+ #
4
+ # If you don't want to try building packages for all the supported bindings,
5
+ # you can disable particular bindings by passing these options to rpmbuild:
6
+ #
7
+ # --without csharp Disable C# bindings
8
+ # --without php Disable PHP bindings
9
+ # --without python Disable Python bindings
10
+ # --without ruby Disable Ruby bindings
11
+ # --without tcl8 Disable Tcl8 bindings
12
+
13
+ %if 0%{?!_without_python:1}
14
+ %define python_ver %(%{__python} -c "import sys; print sys.version[:3]")
15
+ %endif
16
+
17
+ %if 0%{?!_without_php:1}
18
+ %define php_extension_dir %(php-config --extension-dir)
19
+ %endif
20
+
21
+ %if 0%{?!_without_ruby:1}
22
+ %define ruby_ver %(ruby -e "print RUBY_VERSION")
23
+ %endif
24
+
25
+ %if 0%{?!_without_tcl8:1}
26
+ %define tcl_lib %(echo 'foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d'|tclsh)
27
+ %endif
28
+
29
+ Summary: Bindings for the Xapian Probabilistic Information Retrieval Library
30
+ Name: xapian-bindings
31
+ Version: 1.0.18
32
+ Release: 1
33
+ License: GPL
34
+ Vendor: xapian.org
35
+ Group: Development/Libraries
36
+ URL: http://xapian.org/
37
+ Requires: xapian-core-libs = %{version}
38
+ %if 0%{?!_without_python:1}
39
+ BuildRequires: python-devel >= 2.2
40
+ %endif
41
+ %if 0%{?!_without_php:1}
42
+ BuildRequires: php-devel >= 4.3
43
+ %endif
44
+ %if 0%{?!_without_ruby:1}
45
+ BuildRequires: ruby-devel >= 1.8
46
+ %endif
47
+ %if 0%{?!_without_tcl8:1}
48
+ BuildRequires: tcl-devel >= 8.1
49
+ %endif
50
+ %if 0%{?!_without_csharp:1}
51
+ BuildRequires: mono-devel >= 1.1
52
+ %endif
53
+ BuildRequires: autoconf automake libtool
54
+ Source0: http://oligarchy.co.uk/xapian/%{version}/%{name}-%{version}.tar.gz
55
+ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
56
+
57
+ %description
58
+ Xapian is an Open Source Probabilistic Information Retrieval Library. It
59
+ offers a highly adaptable toolkit that allows developers to easily add advanced
60
+ indexing and search facilities to applications. This package provides the
61
+ files needed for scripts which use Xapian.
62
+
63
+ %if 0%{?!_without_ruby:1}
64
+ %package ruby
65
+ Group: Development/Libraries
66
+ Summary: Files needed for Ruby scripts which use Xapian.
67
+ Requires: %{name} = %{version}, ruby >= %{ruby_ver}
68
+
69
+ %description ruby
70
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
71
+ offers a highly adaptable toolkit that allows developers to easily add advanced
72
+ indexing and search facilities to applications. This package provides the
73
+ files needed for developing and running Ruby scripts which use Xapian.
74
+ %endif
75
+
76
+ %if 0%{?!_without_python:1}
77
+ %package python
78
+ Group: Development/Libraries
79
+ Summary: Files needed for Python scripts which use Xapian.
80
+ Requires: %{name} = %{version}, python >= %{python_ver}
81
+
82
+ %description python
83
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
84
+ offers a highly adaptable toolkit that allows developers to easily add advanced
85
+ indexing and search facilities to applications. This package provides the
86
+ files needed for developing and running Python scripts which use Xapian.
87
+ %endif
88
+
89
+ %if 0%{?!_without_php:1}
90
+ %package php
91
+ Group: Development/Libraries
92
+ Summary: Files needed for PHP scripts which use Xapian.
93
+ Requires: %{name} = %{version}, php
94
+
95
+ %description php
96
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
97
+ offers a highly adaptable toolkit that allows developers to easily add advanced
98
+ indexing and search facilities to applications. This package provides the
99
+ files needed for developing and running PHP scripts which use Xapian.
100
+ %endif
101
+
102
+ %if 0%{?!_without_tcl8:1}
103
+ %package tcl8
104
+ Group: Development/Libraries
105
+ Summary: Files needed for Tcl scripts which use Xapian.
106
+ Requires: %{name} = %{version}, tcl
107
+
108
+ %description tcl8
109
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
110
+ offers a highly adaptable toolkit that allows developers to easily add advanced
111
+ indexing and search facilities to applications. This package provides the
112
+ files needed for developing and running Tcl scripts which use Xapian.
113
+ %endif
114
+
115
+ %if 0%{?!_without_csharp:1}
116
+ %package csharp
117
+ Group: Development/Libraries
118
+ Summary: Files needed for C# applications which use Xapian.
119
+ Requires: %{name} = %{version}, mono-core
120
+
121
+ %description csharp
122
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
123
+ offers a highly adaptable toolkit that allows developers to easily add advanced
124
+ indexing and search facilities to applications. This package provides the
125
+ files needed for developing and running C# applications which use Xapian.
126
+ %endif
127
+
128
+ %prep
129
+ %setup -q -n %{name}-%{version}
130
+
131
+ %build
132
+ # FC6 (at least) has a patched libtool which knows not to set rpath for
133
+ # /usr/lib64, which upstream libtool fails to do currently. We can drop
134
+ # this "autoreconf --force" and the "BuildRequires:" for the autotools
135
+ # once upstream libtool is fixed. Note: this overwrites INSTALL, but
136
+ # that doesn't matter here as we don't package it.
137
+ autoreconf --force
138
+ # Only build the bindings we want.
139
+ %configure %{?!_without_python:--with-python} %{?!_without_php:--with-php} %{?!_without_tcl8:--with-tcl} %{?!_without_csharp:--with-csharp} %{?!_without_ruby:--with-ruby}
140
+ make
141
+
142
+ %install
143
+ [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
144
+ mkdir -p %{buildroot}
145
+ # Installation of some files does not obey prefix, so use make install with
146
+ # DESTDIR instead of makeinstall.
147
+ make install DESTDIR=%{buildroot}
148
+ # Move the docs to the right places.
149
+ %{?!_without_python: mv %{buildroot}%{_datadir}/doc/%{name}/python %{buildroot}%{_datadir}/doc/%{name}-python-%{version}}
150
+ %{?!_without_php: mv %{buildroot}%{_datadir}/doc/%{name}/php %{buildroot}%{_datadir}/doc/%{name}-php-%{version}}
151
+ %{?!_without_php: [ -d "%{buildroot}%{_datadir}/php5" ] && mv %{buildroot}%{_datadir}/php5 %{buildroot}%{_datadir}/php}
152
+ %{?!_without_php: [ -d "%{buildroot}%{_datadir}/php4" ] && mv %{buildroot}%{_datadir}/php4 %{buildroot}%{_datadir}/php}
153
+ %{?!_without_tcl8: mv %{buildroot}%{_datadir}/doc/%{name}/tcl8 %{buildroot}%{_datadir}/doc/%{name}-tcl8-%{version}}
154
+ %{?!_without_csharp: mv %{buildroot}%{_datadir}/doc/%{name}/csharp %{buildroot}%{_datadir}/doc/%{name}-csharp-%{version}}
155
+
156
+ %clean
157
+ [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
158
+
159
+ %files
160
+ %defattr(-, root, root)
161
+ # There are no common files at the moment
162
+ %doc AUTHORS ChangeLog COPYING NEWS README
163
+
164
+ %if 0%{?!_without_python:1}
165
+ %files python
166
+ %defattr(-, root, root)
167
+ %{_libdir}/python%{python_ver}/site-packages/_xapian.so
168
+ %{_libdir}/python%{python_ver}/site-packages/xapian.py
169
+ %{_libdir}/python%{python_ver}/site-packages/xapian.pyc
170
+ %ghost %{_libdir}/python%{python_ver}/site-packages/xapian.pyo
171
+ %doc %{_datadir}/doc/%{name}-python-%{version}
172
+ %endif
173
+
174
+ %if 0%{?!_without_php:1}
175
+ %files php
176
+ %defattr(-, root, root)
177
+ %{php_extension_dir}/xapian.so
178
+ %{_datadir}/php/xapian.php
179
+ %doc %{_datadir}/doc/%{name}-php-%{version}
180
+ %endif
181
+
182
+ %if 0%{?!_without_ruby:1}
183
+ %files ruby
184
+ %defattr(-, root, root)
185
+ %{_libdir}/ruby
186
+ /usr/lib/ruby
187
+ %defattr(0644, root, root)
188
+ %{_docdir}/xapian-bindings/ruby/
189
+ %endif
190
+
191
+ %if 0%{?!_without_tcl8:1}
192
+ %files tcl8
193
+ %defattr(-, root, root)
194
+ %{tcl_lib}/xapian%{version}
195
+ %doc %{_datadir}/doc/%{name}-tcl8-%{version}
196
+ %endif
197
+
198
+ %if 0%{?!_without_csharp:1}
199
+ %files csharp
200
+ %defattr(-, root, root)
201
+ %{_libdir}/_XapianSharp.la
202
+ %{_libdir}/_XapianSharp.so
203
+ %{_libdir}/mono/XapianSharp
204
+ %{_libdir}/mono/gac/XapianSharp
205
+ %doc %{_datadir}/doc/%{name}-csharp-%{version}
206
+ %endif
@@ -0,0 +1,206 @@
1
+ # RedHat-style .spec file for Xapian
2
+ # @configure_input@
3
+ #
4
+ # If you don't want to try building packages for all the supported bindings,
5
+ # you can disable particular bindings by passing these options to rpmbuild:
6
+ #
7
+ # --without csharp Disable C# bindings
8
+ # --without php Disable PHP bindings
9
+ # --without python Disable Python bindings
10
+ # --without ruby Disable Ruby bindings
11
+ # --without tcl8 Disable Tcl8 bindings
12
+
13
+ %if 0%{?!_without_python:1}
14
+ %define python_ver %(%{__python} -c "import sys; print sys.version[:3]")
15
+ %endif
16
+
17
+ %if 0%{?!_without_php:1}
18
+ %define php_extension_dir %(php-config --extension-dir)
19
+ %endif
20
+
21
+ %if 0%{?!_without_ruby:1}
22
+ %define ruby_ver %(ruby -e "print RUBY_VERSION")
23
+ %endif
24
+
25
+ %if 0%{?!_without_tcl8:1}
26
+ %define tcl_lib %(echo 'foreach d $tcl_pkgPath {if {![regexp {/share(/|$)} $d]} {break}};puts $d'|tclsh)
27
+ %endif
28
+
29
+ Summary: Bindings for the Xapian Probabilistic Information Retrieval Library
30
+ Name: xapian-bindings
31
+ Version: @VERSION@
32
+ Release: 1
33
+ License: GPL
34
+ Vendor: xapian.org
35
+ Group: Development/Libraries
36
+ URL: http://xapian.org/
37
+ Requires: xapian-core-libs = %{version}
38
+ %if 0%{?!_without_python:1}
39
+ BuildRequires: python-devel >= 2.2
40
+ %endif
41
+ %if 0%{?!_without_php:1}
42
+ BuildRequires: php-devel >= 4.3
43
+ %endif
44
+ %if 0%{?!_without_ruby:1}
45
+ BuildRequires: ruby-devel >= 1.8
46
+ %endif
47
+ %if 0%{?!_without_tcl8:1}
48
+ BuildRequires: tcl-devel >= 8.1
49
+ %endif
50
+ %if 0%{?!_without_csharp:1}
51
+ BuildRequires: mono-devel >= 1.1
52
+ %endif
53
+ BuildRequires: autoconf automake libtool
54
+ Source0: http://oligarchy.co.uk/xapian/%{version}/%{name}-%{version}.tar.gz
55
+ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
56
+
57
+ %description
58
+ Xapian is an Open Source Probabilistic Information Retrieval Library. It
59
+ offers a highly adaptable toolkit that allows developers to easily add advanced
60
+ indexing and search facilities to applications. This package provides the
61
+ files needed for scripts which use Xapian.
62
+
63
+ %if 0%{?!_without_ruby:1}
64
+ %package ruby
65
+ Group: Development/Libraries
66
+ Summary: Files needed for Ruby scripts which use Xapian.
67
+ Requires: %{name} = %{version}, ruby >= %{ruby_ver}
68
+
69
+ %description ruby
70
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
71
+ offers a highly adaptable toolkit that allows developers to easily add advanced
72
+ indexing and search facilities to applications. This package provides the
73
+ files needed for developing and running Ruby scripts which use Xapian.
74
+ %endif
75
+
76
+ %if 0%{?!_without_python:1}
77
+ %package python
78
+ Group: Development/Libraries
79
+ Summary: Files needed for Python scripts which use Xapian.
80
+ Requires: %{name} = %{version}, python >= %{python_ver}
81
+
82
+ %description python
83
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
84
+ offers a highly adaptable toolkit that allows developers to easily add advanced
85
+ indexing and search facilities to applications. This package provides the
86
+ files needed for developing and running Python scripts which use Xapian.
87
+ %endif
88
+
89
+ %if 0%{?!_without_php:1}
90
+ %package php
91
+ Group: Development/Libraries
92
+ Summary: Files needed for PHP scripts which use Xapian.
93
+ Requires: %{name} = %{version}, php
94
+
95
+ %description php
96
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
97
+ offers a highly adaptable toolkit that allows developers to easily add advanced
98
+ indexing and search facilities to applications. This package provides the
99
+ files needed for developing and running PHP scripts which use Xapian.
100
+ %endif
101
+
102
+ %if 0%{?!_without_tcl8:1}
103
+ %package tcl8
104
+ Group: Development/Libraries
105
+ Summary: Files needed for Tcl scripts which use Xapian.
106
+ Requires: %{name} = %{version}, tcl
107
+
108
+ %description tcl8
109
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
110
+ offers a highly adaptable toolkit that allows developers to easily add advanced
111
+ indexing and search facilities to applications. This package provides the
112
+ files needed for developing and running Tcl scripts which use Xapian.
113
+ %endif
114
+
115
+ %if 0%{?!_without_csharp:1}
116
+ %package csharp
117
+ Group: Development/Libraries
118
+ Summary: Files needed for C# applications which use Xapian.
119
+ Requires: %{name} = %{version}, mono-core
120
+
121
+ %description csharp
122
+ Xapian is an Open Source Probabilistic Information Retrieval framework. It
123
+ offers a highly adaptable toolkit that allows developers to easily add advanced
124
+ indexing and search facilities to applications. This package provides the
125
+ files needed for developing and running C# applications which use Xapian.
126
+ %endif
127
+
128
+ %prep
129
+ %setup -q -n %{name}-%{version}
130
+
131
+ %build
132
+ # FC6 (at least) has a patched libtool which knows not to set rpath for
133
+ # /usr/lib64, which upstream libtool fails to do currently. We can drop
134
+ # this "autoreconf --force" and the "BuildRequires:" for the autotools
135
+ # once upstream libtool is fixed. Note: this overwrites INSTALL, but
136
+ # that doesn't matter here as we don't package it.
137
+ autoreconf --force
138
+ # Only build the bindings we want.
139
+ %configure %{?!_without_python:--with-python} %{?!_without_php:--with-php} %{?!_without_tcl8:--with-tcl} %{?!_without_csharp:--with-csharp} %{?!_without_ruby:--with-ruby}
140
+ make
141
+
142
+ %install
143
+ [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
144
+ mkdir -p %{buildroot}
145
+ # Installation of some files does not obey prefix, so use make install with
146
+ # DESTDIR instead of makeinstall.
147
+ make install DESTDIR=%{buildroot}
148
+ # Move the docs to the right places.
149
+ %{?!_without_python: mv %{buildroot}%{_datadir}/doc/%{name}/python %{buildroot}%{_datadir}/doc/%{name}-python-%{version}}
150
+ %{?!_without_php: mv %{buildroot}%{_datadir}/doc/%{name}/php %{buildroot}%{_datadir}/doc/%{name}-php-%{version}}
151
+ %{?!_without_php: [ -d "%{buildroot}%{_datadir}/php5" ] && mv %{buildroot}%{_datadir}/php5 %{buildroot}%{_datadir}/php}
152
+ %{?!_without_php: [ -d "%{buildroot}%{_datadir}/php4" ] && mv %{buildroot}%{_datadir}/php4 %{buildroot}%{_datadir}/php}
153
+ %{?!_without_tcl8: mv %{buildroot}%{_datadir}/doc/%{name}/tcl8 %{buildroot}%{_datadir}/doc/%{name}-tcl8-%{version}}
154
+ %{?!_without_csharp: mv %{buildroot}%{_datadir}/doc/%{name}/csharp %{buildroot}%{_datadir}/doc/%{name}-csharp-%{version}}
155
+
156
+ %clean
157
+ [ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
158
+
159
+ %files
160
+ %defattr(-, root, root)
161
+ # There are no common files at the moment
162
+ %doc AUTHORS ChangeLog COPYING NEWS README
163
+
164
+ %if 0%{?!_without_python:1}
165
+ %files python
166
+ %defattr(-, root, root)
167
+ %{_libdir}/python%{python_ver}/site-packages/_xapian.so
168
+ %{_libdir}/python%{python_ver}/site-packages/xapian.py
169
+ %{_libdir}/python%{python_ver}/site-packages/xapian.pyc
170
+ %ghost %{_libdir}/python%{python_ver}/site-packages/xapian.pyo
171
+ %doc %{_datadir}/doc/%{name}-python-%{version}
172
+ %endif
173
+
174
+ %if 0%{?!_without_php:1}
175
+ %files php
176
+ %defattr(-, root, root)
177
+ %{php_extension_dir}/xapian.so
178
+ %{_datadir}/php/xapian.php
179
+ %doc %{_datadir}/doc/%{name}-php-%{version}
180
+ %endif
181
+
182
+ %if 0%{?!_without_ruby:1}
183
+ %files ruby
184
+ %defattr(-, root, root)
185
+ %{_libdir}/ruby
186
+ /usr/lib/ruby
187
+ %defattr(0644, root, root)
188
+ %{_docdir}/xapian-bindings/ruby/
189
+ %endif
190
+
191
+ %if 0%{?!_without_tcl8:1}
192
+ %files tcl8
193
+ %defattr(-, root, root)
194
+ %{tcl_lib}/xapian%{version}
195
+ %doc %{_datadir}/doc/%{name}-tcl8-%{version}
196
+ %endif
197
+
198
+ %if 0%{?!_without_csharp:1}
199
+ %files csharp
200
+ %defattr(-, root, root)
201
+ %{_libdir}/_XapianSharp.la
202
+ %{_libdir}/_XapianSharp.so
203
+ %{_libdir}/mono/XapianSharp
204
+ %{_libdir}/mono/gac/XapianSharp
205
+ %doc %{_datadir}/doc/%{name}-csharp-%{version}
206
+ %endif
data/xapian-version.h ADDED
@@ -0,0 +1 @@
1
+ #define XAPIAN_BINDINGS_VERSION "1.0.18"
@@ -0,0 +1 @@
1
+ #define XAPIAN_BINDINGS_VERSION "@PACKAGE_VERSION@"
data/xapian.i ADDED
@@ -0,0 +1,939 @@
1
+ %module(directors="1") xapian
2
+
3
+ %{
4
+ /* xapian.i: the Xapian scripting interface.
5
+ *
6
+ * Copyright 1999,2000,2001 BrightStation PLC
7
+ * Copyright 2001,2002 Ananova Ltd
8
+ * Copyright 2002,2003,2005 James Aylett
9
+ * Copyright 2002,2003,2004,2005,2006,2007,2008 Olly Betts
10
+ * Copyright 2007 Lemur Consulting Ltd
11
+ *
12
+ * This program is free software; you can redistribute it and/or
13
+ * modify it under the terms of the GNU General Public License as
14
+ * published by the Free Software Foundation; either version 2 of the
15
+ * License, or (at your option) any later version.
16
+ *
17
+ * This program is distributed in the hope that it will be useful,
18
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
+ * GNU General Public License for more details.
21
+ *
22
+ * You should have received a copy of the GNU General Public License
23
+ * along with this program; if not, write to the Free Software
24
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25
+ * USA
26
+ */
27
+
28
+ // Disable any deprecation warnings for Xapian methods/functions/classes.
29
+ #define XAPIAN_DEPRECATED(D) D
30
+ #include <xapian.h>
31
+ #include <string>
32
+ #include <vector>
33
+
34
+ using namespace std;
35
+
36
+ // If a backend has been disabled in xapian-core (manually or automatically) we
37
+ // include a stub definition here so the bindings can still be built.
38
+ namespace Xapian {
39
+ #ifndef XAPIAN_HAS_QUARTZ_BACKEND
40
+ namespace Quartz {
41
+ static Database open(const string &) {
42
+ throw FeatureUnavailableError("Quartz backend not supported");
43
+ }
44
+ static WritableDatabase open(const string &, int, int = 8192) {
45
+ throw FeatureUnavailableError("Quartz backend not supported");
46
+ }
47
+ }
48
+ #endif
49
+
50
+ #ifndef XAPIAN_HAS_FLINT_BACKEND
51
+ namespace Flint {
52
+ static Database open(const string &) {
53
+ throw FeatureUnavailableError("Flint backend not supported");
54
+ }
55
+ static WritableDatabase open(const string &, int, int = 8192) {
56
+ throw FeatureUnavailableError("Flint backend not supported");
57
+ }
58
+ }
59
+ #endif
60
+
61
+ #ifndef XAPIAN_HAS_INMEMORY_BACKEND
62
+ namespace InMemory {
63
+ static WritableDatabase open() {
64
+ throw FeatureUnavailableError("InMemory backend not supported");
65
+ }
66
+ }
67
+ #endif
68
+
69
+ #ifndef XAPIAN_HAS_REMOTE_BACKEND
70
+ namespace Remote {
71
+ static Database open(const string &, unsigned int, timeout = 0, timeout = 0) {
72
+ throw FeatureUnavailableError("Remote backend not supported");
73
+ }
74
+
75
+ static WritableDatabase open_writable(const string &, unsigned int, timeout = 0, timeout = 0) {
76
+ throw FeatureUnavailableError("Remote backend not supported");
77
+ }
78
+
79
+ static Database open(const string &, const string &, timeout = 0) {
80
+ throw FeatureUnavailableError("Remote backend not supported");
81
+ }
82
+
83
+ static WritableDatabase open_writable(const string &, const string &, timeout = 0) {
84
+ throw FeatureUnavailableError("Remote backend not supported");
85
+ }
86
+ }
87
+ #endif
88
+ }
89
+ %}
90
+
91
+ using namespace std;
92
+
93
+ %include stl.i
94
+
95
+ %template() std::pair<Xapian::TermIterator, Xapian::TermIterator>;
96
+
97
+ %include typemaps.i
98
+ %include exception.i
99
+
100
+ // Parse the visibility and deprecation support header files, so we don't get
101
+ // errors when we %include other Xapian headers.
102
+ %include <xapian/visibility.h>
103
+ %include <xapian/deprecated.h>
104
+
105
+ // This includes a language specific util.i, thanks to judicious setting of
106
+ // the include path.
107
+ %include "util.i"
108
+
109
+ // This includes language specific exception handling if available, or language
110
+ // independent exception handling otherwise, thanks to judicious setting of the
111
+ // include path.
112
+ %include "except.i"
113
+
114
+ // In C#, we wrap ++ and -- as ++ and --.
115
+ #ifdef SWIGCSHARP
116
+ #define NEXT(RET, CLASS) CLASS & next() { return ++(*self); }
117
+ #define PREV(RET, CLASS) CLASS & prev() { return --(*self); }
118
+ #elif defined SWIGJAVA
119
+ #define NEXT(RET, CLASS) RET next() { return *(++(*self)); }
120
+ #define PREV(RET, CLASS) RET prev() { return *(--(*self)); }
121
+ #else
122
+ #define NEXT(RET, CLASS) void next() { ++(*self); }
123
+ #define PREV(RET, CLASS) void prev() { --(*self); }
124
+ #endif
125
+
126
+ #ifndef SWIGPYTHON
127
+ #ifdef SWIGCSHARP
128
+ %rename(Apply) operator();
129
+ #else
130
+ %rename(apply) operator();
131
+ #endif
132
+ #endif
133
+
134
+ %include <xapian/types.h>
135
+
136
+ namespace Xapian {
137
+
138
+ // from xapian/version.h
139
+
140
+ %exception version_string "$action"
141
+ %exception major_version "$action"
142
+ %exception minor_version "$action"
143
+ %exception revision "$action"
144
+ const char * version_string();
145
+ int major_version();
146
+ int minor_version();
147
+ int revision();
148
+
149
+ // Aliases deprecated in 0.9.6:
150
+ %exception xapian_version_string "$action"
151
+ %exception xapian_major_version "$action"
152
+ %exception xapian_minor_version "$action"
153
+ %exception xapian_revision "$action"
154
+ const char * xapian_version_string();
155
+ int xapian_major_version();
156
+ int xapian_minor_version();
157
+ int xapian_revision();
158
+
159
+ class Weight;
160
+ class Stopper;
161
+
162
+ // from xapian/positioniterator.h
163
+
164
+ class PositionIterator {
165
+ public:
166
+ PositionIterator();
167
+ PositionIterator(const PositionIterator &other);
168
+ ~PositionIterator();
169
+ %extend {
170
+ Xapian::termpos get_termpos() const {
171
+ return *(*self);
172
+ }
173
+ NEXT(Xapian::termpos, PositionIterator)
174
+ bool equals(const PositionIterator &other) const {
175
+ return (*self) == other;
176
+ }
177
+ }
178
+ void skip_to(Xapian::termpos pos);
179
+ std::string get_description() const;
180
+ };
181
+
182
+ }
183
+
184
+ %ignore Xapian::DocIDWrapper;
185
+ %ignore Xapian::PostingIterator::operator++;
186
+ %ignore Xapian::PostingIterator::operator*;
187
+ %ignore Xapian::PostingIterator::internal;
188
+ %ignore Xapian::PostingIterator::operator=;
189
+ %ignore operator==(const PostingIterator &, const PostingIterator &);
190
+ %ignore operator!=(const PostingIterator &, const PostingIterator &);
191
+ %ignore difference_type;
192
+ %ignore iterator_category;
193
+ %ignore value_type;
194
+ %extend Xapian::PostingIterator {
195
+ Xapian::docid get_docid() const {
196
+ return *(*self);
197
+ }
198
+ NEXT(Xapian::docid, PostingIterator)
199
+ bool equals(const PostingIterator &other) const {
200
+ return (*self) == other;
201
+ }
202
+ }
203
+ %include <xapian/postingiterator.h>
204
+
205
+ namespace Xapian {
206
+
207
+ // from xapian/termiterator.h
208
+
209
+ class TermIterator {
210
+ public:
211
+ TermIterator();
212
+ TermIterator(const TermIterator &other);
213
+ ~TermIterator();
214
+ %extend {
215
+ string get_term() const {
216
+ return *(*self);
217
+ }
218
+ NEXT(string, TermIterator)
219
+ bool equals(const TermIterator& other) const {
220
+ return (*self) == other;
221
+ }
222
+ }
223
+
224
+ // extra method, not required for an input_iterator
225
+ void skip_to(const std::string & tname);
226
+
227
+ Xapian::termcount get_wdf() const;
228
+ Xapian::doccount get_termfreq() const;
229
+
230
+ // allow iteration of positionlist for current document
231
+ PositionIterator positionlist_begin();
232
+ PositionIterator positionlist_end();
233
+
234
+ std::string get_description() const;
235
+ };
236
+
237
+ // from xapian/valueiterator.h
238
+
239
+ class ValueIterator {
240
+ public:
241
+ ValueIterator();
242
+ ValueIterator(const ValueIterator& other);
243
+ ~ValueIterator();
244
+ %extend {
245
+ string get_value() const {
246
+ return *(*self);
247
+ }
248
+ NEXT(string, ValueIterator)
249
+ bool equals(const ValueIterator &other) const {
250
+ return (*self) == other;
251
+ }
252
+ }
253
+
254
+ Xapian::valueno get_valueno();
255
+ std::string get_description() const;
256
+ };
257
+
258
+ }
259
+
260
+ %ignore Xapian::Document::internal;
261
+ %ignore Xapian::Document::Document(Internal *);
262
+ %ignore Xapian::Document::operator=;
263
+ %include <xapian/document.h>
264
+
265
+ namespace Xapian {
266
+
267
+ // from xapian/enquire.h:
268
+
269
+ class MSetIterator;
270
+
271
+ class MSet {
272
+ public:
273
+ MSet();
274
+ MSet(const MSet& other);
275
+ ~MSet();
276
+
277
+ void fetch(MSetIterator& begin, MSetIterator& end) const;
278
+ void fetch(MSetIterator& item) const;
279
+ void fetch() const;
280
+
281
+ percent convert_to_percent(weight wt) const;
282
+ percent convert_to_percent(const MSetIterator & item) const;
283
+
284
+ doccount get_termfreq(std::string tname) const;
285
+ weight get_termweight(std::string tname) const;
286
+ doccount get_firstitem() const;
287
+ doccount get_matches_lower_bound() const;
288
+ doccount get_matches_estimated() const;
289
+ doccount get_matches_upper_bound() const;
290
+ weight get_max_possible();
291
+ weight get_max_attained();
292
+ doccount size() const;
293
+ bool empty() const;
294
+ MSetIterator begin() const;
295
+ MSetIterator end() const;
296
+ MSetIterator back() const;
297
+ %extend {
298
+ MSetIterator get_hit(doccount i) const {
299
+ return ((*self)[i]);
300
+ }
301
+ int get_document_percentage(doccount i) const {
302
+ return (*self).convert_to_percent( ((*self)[i]) );
303
+ }
304
+ const Document get_document(doccount i) const {
305
+ return ((*self)[i]).get_document();
306
+ }
307
+ docid get_docid(doccount i) const {
308
+ return *((*self)[i]);
309
+ }
310
+ #ifdef SWIGJAVA
311
+ // For compatibility with the original JNI wrappers.
312
+ MSetIterator getElement(doccount i) const {
313
+ return ((*self)[i]);
314
+ }
315
+ #endif
316
+ #ifndef SWIGRUBY
317
+ // We don't wrap methods which were already deprecated when the Ruby
318
+ // bindings were added. This method is deprecated for all other
319
+ // bindings from version 0.9.6 - use get_docid() instead.
320
+ docid get_document_id(doccount i) const {
321
+ return *((*self)[i]);
322
+ }
323
+ #endif
324
+ }
325
+ string get_description() const;
326
+ };
327
+
328
+ class MSetIterator {
329
+ public:
330
+ MSetIterator();
331
+ MSetIterator(const MSetIterator& other);
332
+ ~MSetIterator();
333
+ %extend {
334
+ docid get_docid() const {
335
+ return *(*self);
336
+ }
337
+ NEXT(docid, MSetIterator)
338
+ PREV(docid, MSetIterator)
339
+ bool equals(const MSetIterator &other) const {
340
+ return (*self) == other;
341
+ }
342
+ }
343
+ Document get_document() const;
344
+ doccount get_rank() const;
345
+ weight get_weight() const;
346
+ string get_collapse_key() const;
347
+ doccount get_collapse_count() const;
348
+ percent get_percent() const;
349
+ string get_description() const;
350
+ };
351
+
352
+ class ESetIterator;
353
+
354
+ class ESet {
355
+ public:
356
+ ESet();
357
+ ESet(const ESet& other);
358
+ ~ESet();
359
+ termcount get_ebound() const;
360
+ termcount size() const;
361
+ bool empty() const;
362
+ ESetIterator begin() const;
363
+ ESetIterator end() const;
364
+ ESetIterator back() const;
365
+ string get_description() const;
366
+ };
367
+
368
+ class ESetIterator {
369
+ public:
370
+ ESetIterator();
371
+ ESetIterator(const ESetIterator& other);
372
+ ~ESetIterator();
373
+ %extend {
374
+ // Get termname is deprecated since version 1.0 - we use "term"
375
+ // everywhere else to refer to terms.
376
+ std::string get_termname() const {
377
+ return *(*self);
378
+ }
379
+ std::string get_term() const {
380
+ return *(*self);
381
+ }
382
+ NEXT(std::string, ESetIterator)
383
+ PREV(std::string, ESetIterator)
384
+ bool equals(const ESetIterator &other) const {
385
+ return (*self) == other;
386
+ }
387
+ }
388
+ weight get_weight() const;
389
+ string get_description() const;
390
+ };
391
+
392
+ class RSet {
393
+ public:
394
+ RSet(const RSet& other);
395
+ RSet();
396
+ ~RSet();
397
+ doccount size() const;
398
+ bool empty() const;
399
+ void add_document(docid did);
400
+ void add_document(MSetIterator& i);
401
+ void remove_document(docid did);
402
+ void remove_document(MSetIterator& i);
403
+ bool contains(docid did);
404
+ bool contains(MSetIterator& i);
405
+ string get_description() const;
406
+ };
407
+
408
+ %feature("director") MatchDecider;
409
+ class MatchDecider {
410
+ public:
411
+ virtual bool operator() (const Xapian::Document &doc) const = 0;
412
+ virtual ~MatchDecider() { }
413
+ };
414
+
415
+ /* MatchDecider and ExpandDecider are abstract classes, each only useful if it
416
+ * can be subclassed. There are some C++ subclasses of MatchDecider in core
417
+ * xapian, but none for ExpandDecider: therefore ExpandDecider requires that
418
+ * directors be supported. So we only wrap ExpandDecider for languages which
419
+ * support directors. */
420
+
421
+ #ifdef XAPIAN_SWIG_DIRECTORS
422
+ %feature("director") ExpandDecider;
423
+ class ExpandDecider {
424
+ public:
425
+ virtual bool operator() (const string &term) const = 0;
426
+ virtual ~ExpandDecider() { }
427
+ };
428
+ #endif
429
+
430
+ class Database;
431
+ class Query;
432
+ class Sorter;
433
+
434
+ class Enquire {
435
+ public:
436
+ Enquire(const Database &databases);
437
+ ~Enquire();
438
+
439
+ void set_query(const Query & query, termcount qlen = 0);
440
+ const Query& get_query();
441
+
442
+ void set_weighting_scheme(const Weight& weight);
443
+ void set_collapse_key(valueno collapse_key);
444
+
445
+ typedef enum {
446
+ ASCENDING = 1,
447
+ DESCENDING = 0,
448
+ DONT_CARE = 2
449
+ } docid_order;
450
+
451
+ void set_docid_order(docid_order order);
452
+
453
+ void set_cutoff(int percent_cutoff, weight weight_cutoff = 0);
454
+
455
+ void set_sort_by_relevance();
456
+ void set_sort_by_value(Xapian::valueno sort_key, bool ascending = true);
457
+ void set_sort_by_value_then_relevance(Xapian::valueno sort_key,
458
+ bool ascending = true);
459
+ void set_sort_by_relevance_then_value(Xapian::valueno sort_key,
460
+ bool ascending = true);
461
+ void set_sort_by_key(Xapian::Sorter * sorter, bool ascending = true);
462
+ void set_sort_by_key_then_relevance(Xapian::Sorter * sorter,
463
+ bool ascending = true);
464
+ void set_sort_by_relevance_then_key(Xapian::Sorter * sorter,
465
+ bool ascending = true);
466
+
467
+ static const int INCLUDE_QUERY_TERMS = 1;
468
+ static const int USE_EXACT_TERMFREQ = 2;
469
+
470
+ #ifdef XAPIAN_SWIG_DIRECTORS
471
+ MSet get_mset(doccount first,
472
+ doccount maxitems,
473
+ doccount checkatleast = 0,
474
+ const RSet *omrset = 0,
475
+ const MatchDecider *mdecider = 0) const;
476
+ MSet get_mset(Xapian::doccount first, Xapian::doccount maxitems,
477
+ Xapian::doccount checkatleast,
478
+ const RSet * omrset,
479
+ const MatchDecider * mdecider,
480
+ const MatchDecider * matchspy) const;
481
+ MSet get_mset(doccount first,
482
+ doccount maxitems,
483
+ const RSet *omrset,
484
+ const MatchDecider *mdecider = 0) const;
485
+
486
+ ESet get_eset(termcount maxitems,
487
+ const RSet &omrset,
488
+ int flags = 0, double k = 1.0,
489
+ const ExpandDecider *edecider = 0) const;
490
+ ESet get_eset(termcount maxitems, const RSet & omrset, const Xapian::ExpandDecider * edecider) const;
491
+ #else
492
+ MSet get_mset(doccount first,
493
+ doccount maxitems,
494
+ doccount checkatleast = 0,
495
+ const RSet *omrset = 0) const;
496
+ MSet get_mset(doccount first,
497
+ doccount maxitems,
498
+ const RSet *omrset) const;
499
+
500
+ ESet get_eset(termcount maxitems,
501
+ const RSet &omrset,
502
+ int flags = 0, double k = 1.0) const;
503
+ #endif
504
+
505
+ TermIterator get_matching_terms_begin(docid did) const;
506
+ TermIterator get_matching_terms_end(docid did) const;
507
+ TermIterator get_matching_terms_begin(const MSetIterator& i) const;
508
+ TermIterator get_matching_terms_end(const MSetIterator& i) const;
509
+
510
+ #ifdef XAPIAN_SWIG_DIRECTORS
511
+ void register_match_decider(const std::string& name, const MatchDecider* mdecider=NULL);
512
+ #endif
513
+
514
+ #ifdef XAPIAN_TERMITERATOR_PAIR_OUTPUT_TYPEMAP
515
+ /* We've not written the required custom typemap for all languages yet. */
516
+ %extend {
517
+ std::pair<Xapian::TermIterator, Xapian::TermIterator>
518
+ get_matching_terms(const MSetIterator &hit) const {
519
+ return make_pair(self->get_matching_terms_begin(hit),
520
+ self->get_matching_terms_end(hit));
521
+ }
522
+ }
523
+ #endif
524
+
525
+ string get_description() const;
526
+ };
527
+
528
+ /* Generated code won't compile if directors are enabled. Disable for now
529
+ * while we investigate.
530
+ *
531
+ * The problem comes from having a private pure virtual clone() function in
532
+ * the Weight class. Directors work by multiple inheritance from both
533
+ * SWIG_Director and the class they're directing; constructors in the target
534
+ * language are then redirected to the director class. However the director
535
+ * mechanism doesn't generate a wrapper for the clone() function (presumably
536
+ * because it's private). This is wrong, because the director is then
537
+ * abstract, which the SWIG generated code can't cope with.
538
+ *
539
+ * Also having a factory method might be a problem?
540
+ */
541
+ /*
542
+ #ifdef SWIGPYTHON
543
+ %feature("director") Weight;
544
+ #endif
545
+ */
546
+
547
+ class Weight {
548
+ /* SWIG doesn't handle this:
549
+ private:
550
+ virtual Weight * clone() const = 0; */
551
+ public:
552
+ virtual ~Weight();
553
+
554
+ virtual std::string name() const = 0;
555
+ virtual std::string serialise() const = 0;
556
+ virtual Weight * unserialise(const std::string &s) const = 0;
557
+
558
+ virtual Xapian::weight get_sumpart(Xapian::termcount wdf,
559
+ Xapian::doclength len) const = 0;
560
+ virtual Xapian::weight get_maxpart() const = 0;
561
+ virtual Xapian::weight get_sumextra(Xapian::doclength len) const = 0;
562
+ virtual Xapian::weight get_maxextra() const = 0;
563
+ virtual bool get_sumpart_needs_doclength() const;
564
+ };
565
+
566
+ %warnfilter(842) BoolWeight::unserialise;
567
+ class BoolWeight : public Weight {
568
+ public:
569
+ BoolWeight * clone() const;
570
+ BoolWeight();
571
+ ~BoolWeight();
572
+ std::string name() const;
573
+ std::string serialise() const;
574
+ BoolWeight * unserialise(const std::string & s) const;
575
+ Xapian::weight get_sumpart(Xapian::termcount wdf, Xapian::doclength len) const;
576
+ Xapian::weight get_maxpart() const;
577
+
578
+ Xapian::weight get_sumextra(Xapian::doclength len) const;
579
+ Xapian::weight get_maxextra() const;
580
+
581
+ bool get_sumpart_needs_doclength() const;
582
+ };
583
+
584
+ %warnfilter(842) BM25Weight::unserialise;
585
+ class BM25Weight : public Weight {
586
+ public:
587
+ BM25Weight(double k1_, double k2_, double k3_, double b_,
588
+ double min_normlen_);
589
+ BM25Weight();
590
+
591
+ BM25Weight * clone() const;
592
+ ~BM25Weight();
593
+ std::string name() const;
594
+ std::string serialise() const;
595
+ BM25Weight * unserialise(const std::string & s) const;
596
+ Xapian::weight get_sumpart(Xapian::termcount wdf, Xapian::doclength len) const;
597
+ Xapian::weight get_maxpart() const;
598
+
599
+ Xapian::weight get_sumextra(Xapian::doclength len) const;
600
+ Xapian::weight get_maxextra() const;
601
+
602
+ bool get_sumpart_needs_doclength() const;
603
+ };
604
+
605
+ %warnfilter(842) TradWeight::unserialise;
606
+ class TradWeight : public Weight {
607
+ public:
608
+ explicit TradWeight(double k);
609
+ TradWeight();
610
+
611
+ TradWeight * clone() const;
612
+ ~TradWeight();
613
+ std::string name() const;
614
+ std::string serialise() const;
615
+ TradWeight * unserialise(const std::string & s) const;
616
+
617
+ Xapian::weight get_sumpart(Xapian::termcount wdf, Xapian::doclength len) const;
618
+ Xapian::weight get_maxpart() const;
619
+
620
+ Xapian::weight get_sumextra(Xapian::doclength len) const;
621
+ Xapian::weight get_maxextra() const;
622
+
623
+ bool get_sumpart_needs_doclength() const;
624
+ };
625
+
626
+ }
627
+
628
+ namespace Xapian {
629
+
630
+ // xapian/database.h
631
+
632
+ class Database {
633
+ public:
634
+ void add_database(const Database & database);
635
+ Database();
636
+ Database(const string &path);
637
+ virtual ~Database();
638
+ Database(const Database & other);
639
+ void reopen();
640
+
641
+ string get_description() const;
642
+ PostingIterator postlist_begin(const std::string& tname) const;
643
+ PostingIterator postlist_end(const std::string& tname) const;
644
+ TermIterator termlist_begin(docid did) const;
645
+ TermIterator termlist_end(docid did) const;
646
+ PositionIterator positionlist_begin(docid did, const std::string& tname) const;
647
+ PositionIterator positionlist_end(docid did, const std::string& tname) const;
648
+ TermIterator allterms_begin() const;
649
+ TermIterator allterms_end() const;
650
+ TermIterator allterms_begin(const std::string &prefix) const;
651
+ TermIterator allterms_end(const std::string &prefix) const;
652
+
653
+ doccount get_doccount() const;
654
+ docid get_lastdocid() const;
655
+ doclength get_avlength() const;
656
+ doccount get_termfreq(const std::string &tname) const;
657
+ bool term_exists(const std::string &tname) const;
658
+ termcount get_collection_freq(const std::string &tname) const;
659
+ doclength get_doclength(docid docid) const;
660
+ void keep_alive();
661
+ Document get_document(docid did);
662
+ std::string get_spelling_suggestion(const std::string &word,
663
+ unsigned max_edit_distance = 2) const;
664
+ TermIterator spellings_begin() const;
665
+ TermIterator spellings_end() const;
666
+ TermIterator synonyms_begin(const std::string &term) const;
667
+ TermIterator synonyms_end(const std::string &) const;
668
+ TermIterator synonym_keys_begin(const std::string &prefix = "") const;
669
+ TermIterator synonym_keys_end(const std::string &prefix = "") const;
670
+ std::string get_metadata(const std::string & key) const;
671
+ Xapian::TermIterator metadata_keys_begin(const std::string &prefix = "") const;
672
+ Xapian::TermIterator metadata_keys_end(const std::string &prefix = "") const;
673
+
674
+ };
675
+
676
+ class WritableDatabase : public Database {
677
+ public:
678
+ virtual ~WritableDatabase();
679
+ WritableDatabase();
680
+ WritableDatabase(const string &path, int action);
681
+ WritableDatabase(const WritableDatabase & other);
682
+
683
+ void flush();
684
+
685
+ void begin_transaction(bool flushed = true);
686
+ void commit_transaction();
687
+ void cancel_transaction();
688
+
689
+ docid add_document(const Document & document);
690
+ void delete_document(docid did);
691
+ void replace_document(docid did, const Document & document);
692
+ void delete_document(const std::string & unique_term);
693
+ Xapian::docid replace_document(const std::string & unique_term,
694
+ const Xapian::Document & document);
695
+
696
+ void add_spelling(const std::string & word,
697
+ Xapian::termcount freqinc = 1) const;
698
+ void remove_spelling(const std::string & word,
699
+ Xapian::termcount freqdec = 1) const;
700
+
701
+ void add_synonym(const std::string & term,
702
+ const std::string & synonym) const;
703
+ void remove_synonym(const std::string & term,
704
+ const std::string & synonym) const;
705
+ void clear_synonyms(const std::string & term) const;
706
+ void set_metadata(const std::string & key, const std::string & value);
707
+
708
+ string get_description() const;
709
+ };
710
+
711
+ %constant int DB_CREATE_OR_OPEN = Xapian::DB_CREATE_OR_OPEN;
712
+ %constant int DB_CREATE = Xapian::DB_CREATE;
713
+ %constant int DB_CREATE_OR_OVERWRITE = Xapian::DB_CREATE_OR_OVERWRITE;
714
+ %constant int DB_OPEN = Xapian::DB_OPEN;
715
+ #ifdef SWIGPHP4
716
+ %constant int Xapian_DB_CREATE_OR_OPEN = Xapian::DB_CREATE_OR_OPEN;
717
+ %constant int Xapian_DB_CREATE = Xapian::DB_CREATE;
718
+ %constant int Xapian_DB_CREATE_OR_OVERWRITE = Xapian::DB_CREATE_OR_OVERWRITE;
719
+ %constant int Xapian_DB_OPEN = Xapian::DB_OPEN;
720
+ #endif
721
+
722
+ // Database factory functions:
723
+
724
+ #if !defined SWIGCSHARP && !defined SWIGJAVA
725
+ namespace Auto {
726
+ #ifdef SWIGPHP
727
+ /* PHP4 lacks namespaces so fake them. */
728
+ %rename(auto_open_stub) open_stub;
729
+ #endif
730
+ Database open_stub(const string & file);
731
+ }
732
+
733
+ namespace Quartz {
734
+ %rename(quartz_open) open;
735
+ Database open(const std::string &dir);
736
+ /* SWIG Tcl wrappers don't call destructors for classes returned by factory
737
+ * functions, so don't wrap them so users are forced to use the
738
+ * WritableDatabase ctor instead. */
739
+ #ifndef SWIGTCL
740
+ WritableDatabase open(const std::string &dir, int action, int block_size = 8192);
741
+ #endif
742
+ }
743
+
744
+ namespace Flint {
745
+ %rename(flint_open) open;
746
+ Database open(const std::string &dir);
747
+ /* SWIG Tcl wrappers don't call destructors for classes returned by factory
748
+ * functions, so don't wrap them so users are forced to use the
749
+ * WritableDatabase ctor instead. */
750
+ #ifndef SWIGTCL
751
+ WritableDatabase open(const std::string &dir, int action, int block_size = 8192);
752
+ #endif
753
+ }
754
+
755
+ namespace InMemory {
756
+ %rename(inmemory_open) open;
757
+ WritableDatabase open();
758
+ }
759
+
760
+ namespace Remote {
761
+ %rename(remote_open) open;
762
+ %rename(remote_open_writable) open_writable;
763
+
764
+ Database open(const std::string &host, unsigned int port, Xapian::timeout timeout, Xapian::timeout connect_timeout);
765
+ Database open(const std::string &host, unsigned int port, Xapian::timeout timeout = 10000);
766
+
767
+ WritableDatabase open_writable(const std::string &host, unsigned int port, Xapian::timeout timeout, Xapian::timeout connect_timeout);
768
+ WritableDatabase open_writable(const std::string &host, unsigned int port, Xapian::timeout timeout = 10000);
769
+
770
+ Database open(const std::string &program, const std::string &args, Xapian::timeout timeout = 10000);
771
+
772
+ WritableDatabase open_writable(const std::string &program, const std::string &args, Xapian::timeout timeout = 10000);
773
+ }
774
+ #else
775
+ /* Lie to SWIG that Auto, etc are classes with static methods rather than
776
+ namespaces so it wraps it as we want in C# and Java. */
777
+ class Auto {
778
+ private:
779
+ Auto();
780
+ ~Auto();
781
+ public:
782
+ static
783
+ Database open_stub(const string & file);
784
+ };
785
+
786
+ class Quartz {
787
+ private:
788
+ Quartz();
789
+ ~Quartz();
790
+ public:
791
+ static
792
+ Database open(const std::string &dir);
793
+ static
794
+ WritableDatabase open(const std::string &dir, int action, int block_size = 8192);
795
+ };
796
+
797
+ class Flint {
798
+ private:
799
+ Flint();
800
+ ~Flint();
801
+ public:
802
+ static
803
+ Database open(const std::string &dir);
804
+ static
805
+ WritableDatabase open(const std::string &dir, int action, int block_size = 8192);
806
+ };
807
+
808
+ class InMemory {
809
+ private:
810
+ InMemory();
811
+ ~InMemory();
812
+ public:
813
+ static
814
+ WritableDatabase open();
815
+ };
816
+
817
+ class Remote {
818
+ private:
819
+ Remote();
820
+ ~Remote();
821
+ public:
822
+ static
823
+ Database open(const std::string &host, unsigned int port, Xapian::timeout timeout, Xapian::timeout connect_timeout);
824
+ static
825
+ Database open(const std::string &host, unsigned int port, Xapian::timeout timeout = 10000);
826
+
827
+ static
828
+ WritableDatabase open_writable(const std::string &host, unsigned int port, Xapian::timeout timeout, Xapian::timeout connect_timeout);
829
+ static
830
+ WritableDatabase open_writable(const std::string &host, unsigned int port, Xapian::timeout timeout = 10000);
831
+
832
+ static
833
+ Database open(const std::string &program, const std::string &args, Xapian::timeout timeout = 10000);
834
+
835
+ static
836
+ WritableDatabase open_writable(const std::string &program, const std::string &args, Xapian::timeout timeout = 10000);
837
+ };
838
+ #endif
839
+
840
+ // xapian/query.h:
841
+
842
+ class Query {
843
+ public:
844
+ enum op {
845
+ OP_AND,
846
+ OP_OR,
847
+ OP_AND_NOT,
848
+ OP_XOR,
849
+ OP_AND_MAYBE,
850
+ OP_FILTER,
851
+ OP_NEAR,
852
+ OP_PHRASE,
853
+ OP_VALUE_RANGE,
854
+ OP_SCALE_WEIGHT,
855
+ OP_ELITE_SET = 10,
856
+ OP_VALUE_GE,
857
+ OP_VALUE_LE
858
+ };
859
+ Query(const string &tname, termcount wqf = 1, termpos term_pos = 0);
860
+ Query(Query::op op_, const Query & left, const Query & right);
861
+ Query(Query::op op_, const string & left, const string & right);
862
+ Query(const Query& copyme);
863
+ Query(Query::op op_, Xapian::valueno valno, const std::string &begin, const std::string &end);
864
+ Query(Query::op op_, Xapian::valueno valno, const std::string &value);
865
+ %extend {
866
+ #ifndef XAPIAN_MIXED_VECTOR_QUERY_INPUT_TYPEMAP
867
+ /* For some languages we handle strings in the vector<Query>
868
+ * case, so we don't need to wrap this ctor. */
869
+
870
+ /** Constructs a query from a vector of terms merged with the
871
+ * specified operator. */
872
+ Query(Query::op op, const vector<string> & subqs, termcount param = 0) {
873
+ return new Xapian::Query(op, subqs.begin(), subqs.end(), param);
874
+ }
875
+ #endif
876
+
877
+ /** Constructs a query from a vector of subqueries merged with the
878
+ * specified operator. */
879
+ Query(Query::op op, const vector<Xapian::Query> & subqs, termcount param = 0) {
880
+ return new Xapian::Query(op, subqs.begin(), subqs.end(), param);
881
+ }
882
+ }
883
+ /** Apply the specified operator to a single Xapian::Query object. */
884
+ Query(Query::op op_, Xapian::Query q);
885
+
886
+ /** Apply the specified operator to a single Xapian::Query object, with a parameter. */
887
+ Query(Query::op op_, Xapian::Query q, double parameter);
888
+
889
+ /** Constructs a new empty query object */
890
+ Query();
891
+
892
+ ~Query();
893
+
894
+ termcount get_length() const;
895
+ TermIterator get_terms_begin() const;
896
+ TermIterator get_terms_end() const;
897
+ bool empty() const;
898
+
899
+ string get_description() const;
900
+ };
901
+
902
+ }
903
+
904
+ %feature("director") Xapian::Stopper;
905
+ %feature("director") Xapian::ValueRangeProcessor;
906
+ %ignore Xapian::QueryParser::internal;
907
+ %ignore Xapian::QueryParser::operator=;
908
+ %ignore Xapian::QueryParser::QueryParser(const QueryParser &);
909
+ %include <xapian/queryparser.h>
910
+
911
+ %ignore Xapian::Stem::internal;
912
+ %ignore Xapian::Stem::operator=;
913
+ %ignore Xapian::Stem::Stem();
914
+ %ignore Xapian::Stem::Stem(const Stem &);
915
+ %include <xapian/stem.h>
916
+
917
+ %ignore Xapian::TermGenerator::internal;
918
+ %ignore Xapian::TermGenerator::operator=;
919
+ %ignore Xapian::TermGenerator::index_text(const Xapian::Utf8Iterator &);
920
+ %ignore Xapian::TermGenerator::index_text(const Xapian::Utf8Iterator &, Xapian::termcount);
921
+ %ignore Xapian::TermGenerator::index_text(const Xapian::Utf8Iterator &, Xapian::termcount, const std::string &);
922
+ %ignore Xapian::TermGenerator::index_text_without_positions(const Xapian::Utf8Iterator &);
923
+ %ignore Xapian::TermGenerator::index_text_without_positions(const Xapian::Utf8Iterator &, Xapian::termcount);
924
+ %ignore Xapian::TermGenerator::index_text_without_positions(const Xapian::Utf8Iterator &, Xapian::termcount, const std::string &);
925
+ %ignore Xapian::TermGenerator::TermGenerator(const TermGenerator &);
926
+ %include <xapian/termgenerator.h>
927
+
928
+ %feature("director") Xapian::Sorter;
929
+ %include <xapian/sorter.h>
930
+
931
+ namespace Xapian {
932
+
933
+ #if defined SWIGPYTHON
934
+ %include extra.i
935
+ #endif
936
+
937
+ }
938
+
939
+ /* vim:set syntax=cpp:set noexpandtab: */