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.
- data/.gitignore +3 -0
- data/AUTHORS +1 -0
- data/COPYING +340 -0
- data/ChangeLog +5876 -0
- data/HACKING +101 -0
- data/INSTALL +293 -0
- data/Makefile +722 -0
- data/Makefile.am +26 -0
- data/Makefile.in +722 -0
- data/NEWS +2110 -0
- data/README +59 -0
- data/Rakefile +51 -0
- data/TODO +47 -0
- data/aclocal.m4 +7675 -0
- data/config.guess +1501 -0
- data/config.h +56 -0
- data/config.h.in +55 -0
- data/config.status +1298 -0
- data/config.sub +1705 -0
- data/configure +18536 -0
- data/configure.ac +944 -0
- data/csharp/.deps/xapian_wrap.Plo +1 -0
- data/csharp/AssemblyInfo.cs +40 -0
- data/csharp/AssemblyInfo.cs.in +40 -0
- data/csharp/Auto.cs +46 -0
- data/csharp/BM25Weight.cs +107 -0
- data/csharp/BoolWeight.cs +103 -0
- data/csharp/Database.cs +275 -0
- data/csharp/DateValueRangeProcessor.cs +61 -0
- data/csharp/Document.cs +177 -0
- data/csharp/ESet.cs +94 -0
- data/csharp/ESetIterator.cs +117 -0
- data/csharp/Enquire.cs +274 -0
- data/csharp/ExpandDecider.cs +76 -0
- data/csharp/Flint.cs +58 -0
- data/csharp/InMemory.cs +46 -0
- data/csharp/MSet.cs +193 -0
- data/csharp/MSetIterator.cs +141 -0
- data/csharp/Makefile +868 -0
- data/csharp/Makefile.am +106 -0
- data/csharp/Makefile.in +868 -0
- data/csharp/MatchDecider.cs +76 -0
- data/csharp/MultiValueSorter.cs +63 -0
- data/csharp/NumberValueRangeProcessor.cs +61 -0
- data/csharp/PositionIterator.cs +101 -0
- data/csharp/PostingIterator.cs +125 -0
- data/csharp/Quartz.cs +58 -0
- data/csharp/Query.cs +150 -0
- data/csharp/QueryParser.cs +174 -0
- data/csharp/RSet.cs +102 -0
- data/csharp/Remote.cs +100 -0
- data/csharp/SWIGTYPE_p_std__string.cs +30 -0
- data/csharp/SWIGTYPE_p_std__vectorTXapian__Query_t.cs +30 -0
- data/csharp/SWIGTYPE_p_std__vectorTstd__string_t.cs +30 -0
- data/csharp/SimpleStopper.cs +64 -0
- data/csharp/SmokeTest.cs +178 -0
- data/csharp/Sorter.cs +76 -0
- data/csharp/Stem.cs +66 -0
- data/csharp/Stopper.cs +91 -0
- data/csharp/StringValueRangeProcessor.cs +53 -0
- data/csharp/TermGenerator.cs +152 -0
- data/csharp/TermIterator.cs +125 -0
- data/csharp/TradWeight.cs +107 -0
- data/csharp/ValueIterator.cs +102 -0
- data/csharp/ValueRangeProcessor.cs +76 -0
- data/csharp/Version.cs +60 -0
- data/csharp/Weight.cs +93 -0
- data/csharp/WritableDatabase.cs +153 -0
- data/csharp/Xapian.cs +65 -0
- data/csharp/XapianPINVOKE.cs +1527 -0
- data/csharp/docs/Makefile +450 -0
- data/csharp/docs/Makefile.am +16 -0
- data/csharp/docs/Makefile.in +450 -0
- data/csharp/docs/examples/SimpleExpand.cs +109 -0
- data/csharp/docs/examples/SimpleIndex.cs +71 -0
- data/csharp/docs/examples/SimpleSearch.cs +78 -0
- data/csharp/docs/index.html +211 -0
- data/csharp/util.i +233 -0
- data/csharp/xapian_wrap.cc +10338 -0
- data/csharp/xapian_wrap.h +93 -0
- data/depcomp +632 -0
- data/extconf.rb +20 -0
- data/generic/except.i +80 -0
- data/generic/generic.mk +48 -0
- data/install-sh +520 -0
- data/java-swig/.deps/xapian_wrap.Plo +1 -0
- data/java-swig/Auto.java +35 -0
- data/java-swig/BM25Weight.java +81 -0
- data/java-swig/BoolWeight.java +77 -0
- data/java-swig/Database.java +195 -0
- data/java-swig/DateValueRangeProcessor.java +51 -0
- data/java-swig/Document.java +135 -0
- data/java-swig/ESet.java +71 -0
- data/java-swig/ESetIterator.java +71 -0
- data/java-swig/Enquire.java +246 -0
- data/java-swig/ExpandDecider.java +59 -0
- data/java-swig/Flint.java +43 -0
- data/java-swig/InMemory.java +35 -0
- data/java-swig/MSet.java +143 -0
- data/java-swig/MSetIterator.java +87 -0
- data/java-swig/Makefile +781 -0
- data/java-swig/Makefile.am +132 -0
- data/java-swig/Makefile.in +781 -0
- data/java-swig/MatchDecider.java +59 -0
- data/java-swig/MultiValueSorter.java +51 -0
- data/java-swig/NumberValueRangeProcessor.java +51 -0
- data/java-swig/PositionIterator.java +63 -0
- data/java-swig/PostingIterator.java +83 -0
- data/java-swig/Quartz.java +43 -0
- data/java-swig/Query.java +189 -0
- data/java-swig/QueryParser.java +214 -0
- data/java-swig/RSet.java +79 -0
- data/java-swig/Remote.java +71 -0
- data/java-swig/SWIGTYPE_p_std__string.java +25 -0
- data/java-swig/SimpleStopper.java +51 -0
- data/java-swig/SmokeTest.java +161 -0
- data/java-swig/Sorter.java +59 -0
- data/java-swig/Stem.java +51 -0
- data/java-swig/Stopper.java +63 -0
- data/java-swig/StringValueRangeProcessor.java +43 -0
- data/java-swig/TermGenerator.java +158 -0
- data/java-swig/TermIterator.java +83 -0
- data/java-swig/TradWeight.java +81 -0
- data/java-swig/ValueIterator.java +67 -0
- data/java-swig/ValueRangeProcessor.java +59 -0
- data/java-swig/Version.java +47 -0
- data/java-swig/Weight.java +68 -0
- data/java-swig/WritableDatabase.java +123 -0
- data/java-swig/Xapian.java +39 -0
- data/java-swig/XapianConstants.java +15 -0
- data/java-swig/XapianJNI.java +508 -0
- data/java-swig/run-java-test +6 -0
- data/java-swig/xapian_wrap.cc +12594 -0
- data/java-swig/xapian_wrap.h +91 -0
- data/java/Makefile +660 -0
- data/java/Makefile.am +35 -0
- data/java/Makefile.in +660 -0
- data/java/README +76 -0
- data/java/SmokeTest.java +148 -0
- data/java/native/.deps/Database.Plo +1 -0
- data/java/native/.deps/Document.Plo +1 -0
- data/java/native/.deps/ESet.Plo +1 -0
- data/java/native/.deps/ESetIterator.Plo +1 -0
- data/java/native/.deps/Enquire.Plo +1 -0
- data/java/native/.deps/MSet.Plo +1 -0
- data/java/native/.deps/MSetIterator.Plo +1 -0
- data/java/native/.deps/PositionIterator.Plo +1 -0
- data/java/native/.deps/Query.Plo +1 -0
- data/java/native/.deps/RSet.Plo +1 -0
- data/java/native/.deps/Stem.Plo +1 -0
- data/java/native/.deps/TermIterator.Plo +1 -0
- data/java/native/.deps/WritableDatabase.Plo +1 -0
- data/java/native/.deps/org_xapian_XapianJNI.Plo +1 -0
- data/java/native/.deps/utils.Plo +1 -0
- data/java/native/Database.cc +222 -0
- data/java/native/Document.cc +173 -0
- data/java/native/ESet.cc +79 -0
- data/java/native/ESetIterator.cc +82 -0
- data/java/native/Enquire.cc +271 -0
- data/java/native/MSet.cc +169 -0
- data/java/native/MSetIterator.cc +107 -0
- data/java/native/Makefile +594 -0
- data/java/native/Makefile.am +51 -0
- data/java/native/Makefile.in +594 -0
- data/java/native/PositionIterator.cc +64 -0
- data/java/native/Query.cc +180 -0
- data/java/native/RSet.cc +98 -0
- data/java/native/Stem.cc +75 -0
- data/java/native/TermIterator.cc +107 -0
- data/java/native/WritableDatabase.cc +118 -0
- data/java/native/XapianObjectHolder.h +115 -0
- data/java/native/org_xapian_XapianJNI.cc +78 -0
- data/java/native/org_xapian_XapianJNI.h +1369 -0
- data/java/native/utils.cc +51 -0
- data/java/native/xapian_jni.h +116 -0
- data/java/org/xapian/Database.java +148 -0
- data/java/org/xapian/Document.java +135 -0
- data/java/org/xapian/ESet.java +66 -0
- data/java/org/xapian/ESetIterator.java +97 -0
- data/java/org/xapian/Enquire.java +136 -0
- data/java/org/xapian/ExpandDecider.java +30 -0
- data/java/org/xapian/MSet.java +104 -0
- data/java/org/xapian/MSetIterator.java +132 -0
- data/java/org/xapian/Makefile +580 -0
- data/java/org/xapian/Makefile.am +38 -0
- data/java/org/xapian/Makefile.in +580 -0
- data/java/org/xapian/MatchDecider.java +30 -0
- data/java/org/xapian/PositionIterator.java +89 -0
- data/java/org/xapian/Query.java +190 -0
- data/java/org/xapian/RSet.java +89 -0
- data/java/org/xapian/Stem.java +80 -0
- data/java/org/xapian/TermIterator.java +142 -0
- data/java/org/xapian/WritableDatabase.java +92 -0
- data/java/org/xapian/Xapian.java +114 -0
- data/java/org/xapian/XapianJNI.java +444 -0
- data/java/org/xapian/errors/AssertionError.java +40 -0
- data/java/org/xapian/errors/DatabaseCorruptError.java +40 -0
- data/java/org/xapian/errors/DatabaseError.java +40 -0
- data/java/org/xapian/errors/DatabaseLockError.java +40 -0
- data/java/org/xapian/errors/DatabaseModifiedError.java +40 -0
- data/java/org/xapian/errors/DatabaseOpeningError.java +40 -0
- data/java/org/xapian/errors/DocNotFoundError.java +40 -0
- data/java/org/xapian/errors/FeatureUnavailableError.java +40 -0
- data/java/org/xapian/errors/InternalError.java +40 -0
- data/java/org/xapian/errors/InvalidArgumentError.java +40 -0
- data/java/org/xapian/errors/InvalidOperationError.java +40 -0
- data/java/org/xapian/errors/LogicError.java +40 -0
- data/java/org/xapian/errors/Makefile +416 -0
- data/java/org/xapian/errors/Makefile.am +32 -0
- data/java/org/xapian/errors/Makefile.in +416 -0
- data/java/org/xapian/errors/NetworkError.java +40 -0
- data/java/org/xapian/errors/NetworkTimeoutError.java +40 -0
- data/java/org/xapian/errors/RangeError.java +40 -0
- data/java/org/xapian/errors/RuntimeError.java +40 -0
- data/java/org/xapian/errors/UnimplementedError.java +40 -0
- data/java/org/xapian/errors/XapianError.java +40 -0
- data/java/org/xapian/errors/XapianRuntimeError.java +49 -0
- data/java/org/xapian/examples/Makefile +391 -0
- data/java/org/xapian/examples/Makefile.am +8 -0
- data/java/org/xapian/examples/Makefile.in +391 -0
- data/java/org/xapian/examples/SimpleIndex.java +68 -0
- data/java/org/xapian/examples/SimpleSearch.java +71 -0
- data/java/run-java-test +6 -0
- data/libtool +7618 -0
- data/ltmain.sh +6956 -0
- data/mhs-xapian.gemspec +368 -0
- data/missing +378 -0
- data/php/.deps/xapian_wrap.Plo +1 -0
- data/php/Makefile +871 -0
- data/php/Makefile.am +82 -0
- data/php/Makefile.in +871 -0
- data/php/docs/Makefile +453 -0
- data/php/docs/Makefile.am +19 -0
- data/php/docs/Makefile.in +453 -0
- data/php/docs/examples/simpleexpand.php4 +108 -0
- data/php/docs/examples/simpleexpand.php5 +104 -0
- data/php/docs/examples/simpleindex.php4 +76 -0
- data/php/docs/examples/simpleindex.php5 +73 -0
- data/php/docs/examples/simplesearch.php4 +75 -0
- data/php/docs/examples/simplesearch.php5 +72 -0
- data/php/docs/index.html +313 -0
- data/php/except.i +98 -0
- data/php/php4/php_xapian.h +323 -0
- data/php/php4/xapian.php +32 -0
- data/php/php4/xapian_wrap.cc +27656 -0
- data/php/php5/php_xapian.h +319 -0
- data/php/php5/xapian.php +1566 -0
- data/php/php5/xapian_wrap.cc +24330 -0
- data/php/smoketest.php +246 -0
- data/php/smoketest4.php +84 -0
- data/php/smoketest5.php +79 -0
- data/php/util.i +187 -0
- data/python/.deps/xapian_wrap.Plo +1 -0
- data/python/Makefile +891 -0
- data/python/Makefile.am +105 -0
- data/python/Makefile.in +891 -0
- data/python/doccomments.i +5134 -0
- data/python/docs/Makefile +448 -0
- data/python/docs/Makefile.am +14 -0
- data/python/docs/Makefile.in +448 -0
- data/python/docs/examples/simpleexpand.py +98 -0
- data/python/docs/examples/simpleindex.py +65 -0
- data/python/docs/examples/simplematchdecider.py +78 -0
- data/python/docs/examples/simplesearch.py +65 -0
- data/python/docs/index.html +420 -0
- data/python/except.i +290 -0
- data/python/extra.i +1048 -0
- data/python/extracomments.i +28 -0
- data/python/generate-python-exceptions +189 -0
- data/python/generate-python-exceptions.in +189 -0
- data/python/modern/xapian.py +5662 -0
- data/python/modern/xapian_wrap.cc +35170 -0
- data/python/modern/xapian_wrap.h +244 -0
- data/python/pythontest.py +1110 -0
- data/python/smoketest.py +328 -0
- data/python/testsuite.py +382 -0
- data/python/util.i +517 -0
- data/ruby/.deps/xapian_wrap.Plo +494 -0
- data/ruby/.libs/_xapian.bundle +0 -0
- data/ruby/.libs/_xapian.bundle.dSYM/Contents/Info.plist +25 -0
- data/ruby/.libs/_xapian.bundle.dSYM/Contents/Resources/DWARF/_xapian.bundle +0 -0
- data/ruby/.libs/_xapian.la +35 -0
- data/ruby/.libs/_xapian.lai +35 -0
- data/ruby/Makefile +854 -0
- data/ruby/Makefile.am +62 -0
- data/ruby/Makefile.in +854 -0
- data/ruby/_xapian.la +35 -0
- data/ruby/docs/Makefile +487 -0
- data/ruby/docs/Makefile.am +50 -0
- data/ruby/docs/Makefile.in +487 -0
- data/ruby/docs/examples/simpleexpand.rb +98 -0
- data/ruby/docs/examples/simpleindex.rb +60 -0
- data/ruby/docs/examples/simplematchdecider.rb +74 -0
- data/ruby/docs/examples/simplesearch.rb +63 -0
- data/ruby/docs/index.html +197 -0
- data/ruby/smoketest.rb +211 -0
- data/ruby/util.i +232 -0
- data/ruby/xapian.rb +280 -0
- data/ruby/xapian_wrap.cc +25837 -0
- data/ruby/xapian_wrap.h +65 -0
- data/ruby/xapian_wrap.lo +12 -0
- data/skiptest +2 -0
- data/stamp-h1 +1 -0
- data/tcl8/.deps/xapian_wrap.Plo +1 -0
- data/tcl8/Makefile +835 -0
- data/tcl8/Makefile.am +49 -0
- data/tcl8/Makefile.in +835 -0
- data/tcl8/docs/Makefile +448 -0
- data/tcl8/docs/Makefile.am +14 -0
- data/tcl8/docs/Makefile.in +448 -0
- data/tcl8/docs/examples/simpleexpand.tcl +104 -0
- data/tcl8/docs/examples/simpleindex.tcl +68 -0
- data/tcl8/docs/examples/simplesearch.tcl +66 -0
- data/tcl8/docs/index.html +208 -0
- data/tcl8/except.i +48 -0
- data/tcl8/pkgIndex.tcl +1 -0
- data/tcl8/pkgIndex.tcl.in +1 -0
- data/tcl8/run-tcl-test +15 -0
- data/tcl8/runtest.tcl +29 -0
- data/tcl8/smoketest.tcl +155 -0
- data/tcl8/util.i +76 -0
- data/tcl8/xapian_wrap.cc +20900 -0
- data/xapian-bindings.spec +206 -0
- data/xapian-bindings.spec.in +206 -0
- data/xapian-version.h +1 -0
- data/xapian-version.h.in +1 -0
- data/xapian.i +939 -0
- 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"
|
data/xapian-version.h.in
ADDED
@@ -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: */
|