Features removed from Xapian¶
Table of contents
Native C++ API¶
Removed |
Feature name |
Upgrade suggestion and comments |
|---|---|---|
1.0.0 |
QueryParser::set_stemming_options() |
Use
If a third parameter is passed, |
1.0.0 |
Enquire::set_sort_forward() |
Use
|
1.0.0 |
Enquire::set_sorting() |
Use
|
1.0.0 |
Stem::stem_word(word) |
Use |
1.0.0 |
Auto::open(path) |
Use the |
1.0.0 |
Auto::open(path, action) |
Use the |
1.0.0 |
Query::is_empty() |
Use |
1.0.0 |
Document::add_term_nopos() |
Use |
1.0.0 |
Enquire::set_bias() |
Use |
1.0.0 |
ExpandDecider::operator() |
Return type is now |
1.0.0 |
MatchDecider::operator() |
Return type is now |
1.0.0 |
Error::get_type() |
Return type is now |
1.0.0 |
<xapian/output.h> |
Use |
1.0.0 |
Several constructors marked as explicit. |
Explicitly create the object type required, for example use
|
1.0.0 |
QueryParser::parse_query() throwing
|
Catch |
1.1.0 |
xapian_version_string() |
Use |
1.1.0 |
xapian_major_version() |
Use |
1.1.0 |
xapian_minor_version() |
Use |
1.1.0 |
xapian_revision() |
Use |
1.1.0 |
Enquire::include_query_terms |
Use |
1.1.0 |
Enquire::use_exact_termfreq |
Use |
1.1.0 |
Error::get_errno() |
Use |
1.1.0 |
Enquire::register_match_decider() |
This method didn’t do anything, so just remove calls to it! |
1.1.0 |
Query::Query(Query::op, Query) |
This constructor isn’t useful for any currently implemented
|
1.1.0 |
The Quartz backend |
Use the Chert backend instead. |
1.1.0 |
Quartz::open() |
Use |
1.1.0 |
quartzcheck |
Use |
1.1.0 |
quartzcompact |
Use |
1.1.0 |
quartzdump |
Use |
1.1.0 |
configure –enable-debug |
configure –enable-assertions |
1.1.0 |
configure –enable-debug=full |
configure –enable-assertions –enable-log |
1.1.0 |
configure –enable-debug=partial |
configure –enable-assertions=partial |
1.1.0 |
configure –enable-debug=profile |
configure –enable-log=profile |
1.1.0 |
configure –enable-debug-verbose |
configure –enable-log |
1.1.0 |
|
This check is quite expensive, and often you don’t care. If you
do it’s easy to check - just open a |
1.1.0 |
|
This check is quite expensive, and often you don’t care. If you
do, it’s easy to check - just call |
1.1.5 |
delve -k |
Accepted as an undocumented alias for -V since 0.9.10 for compatibility with 0.9.9 and earlier. Just use -V instead. |
1.3.0 |
The Flint backend |
Use the Chert backend instead. |
1.3.0 |
Flint::open() |
Use |
1.3.0 |
xapian-chert-update |
Install Xapian 1.2.x (where x >= 5) to update chert databases from 1.1.3 and earlier. |
1.3.0 |
Default second parameter to
|
The parameter name was The methods affected are:
To update them, just add a second parameter with value |
1.3.0 |
|
Use |
1.3.0 |
|
Use MultiValueSorter sorter;
// Primary ordering is forwards on value 4.
sorter.add(4);
// Secondary ordering is reverse on value 5.
sorter.add(5, false);
becomes: MultiValueKeyMaker sorter;
// Primary ordering is forwards on value 4.
sorter.add_value(4);
// Secondary ordering is reverse on value 5.
sorter.add_value(5, true);
|
1.3.0 |
|
Use the newer |
1.3.0 |
|
Use |
1.3.0 |
|
Use |
1.3.0 |
|
Use |
1.3.0 |
|
To be compatible with older and newer Xapian, you can catch both exceptions. |
1.3.2 |
The Brass backend |
Use the Glass backend instead. |
1.3.2 |
|
Use the constructor with |
1.3.4 |
Copy constructors and assignment
operators for classes:
|
We think it was a mistake that implicit copy constructors and assignment operators were being provided for these functor classes - it’s hard to use them correctly, but easy to use them in ways which compile but don’t work correctly, and we doubt anyone is intentionally using them, so we’ve simply removed them. For more information, see https://trac.xapian.org/ticket/681 |
1.3.5 |
|
Use |
Bindings¶
Removed |
Language |
Feature name |
Upgrade suggestion and comments |
|---|---|---|---|
1.0.0 |
SWIG 1 |
Enquire::set_sort_forward() |
Use
|
1.0.0 |
SWIG 1 |
Enquire::set_sorting() |
Use
|
1.0.0 |
SWIG 1 |
Auto::open(path) |
Use the |
1.0.0 |
SWIG 1 |
Auto::open(path, action) |
Use the |
1.0.0 |
SWIG 3 |
MSet::is_empty() |
Use |
1.0.0 |
SWIG 3 |
ESet::is_empty() |
Use |
1.0.0 |
SWIG 3 |
RSet::is_empty() |
Use |
1.0.0 |
SWIG 3 |
Query::is_empty() |
Use |
1.0.0 |
SWIG 1 |
Document::add_term_nopos() |
Use |
1.0.0 |
CSharp |
ExpandDecider::Apply() |
Return type is now |
1.0.0 |
CSharp |
MatchDecider::Apply() |
Return type is now |
1.0.0 |
SWIG 1 |
Stem::stem_word(word) |
Use |
1.1.0 |
SWIG 1 |
xapian_version_string() |
Use |
1.1.0 |
SWIG 1 |
xapian_major_version() |
Use |
1.1.0 |
SWIG 1 |
xapian_minor_version() |
Use |
1.1.0 |
SWIG 1 |
xapian_revision() |
Use |
1.1.0 |
SWIG 1 |
ESetIterator::get_termname() |
Use |
1.1.0 |
Python |
get_description() |
All |
1.1.0 |
Python |
MSetItem.get_*() |
All these methods are deprecated, in favour of properties.
To convert, just change |
1.1.0 |
Python |
Enquire.get_matching_terms |
Replaced by |
1.1.0 |
SWIG 1 |
Error::get_errno() |
Use |
1.1.0 |
SWIG 2 |
MSet::get_document_id() |
Use |
1.2.0 |
Python |
mset[i][xapian.MSET_DID] etc |
This was inadvertently removed in 1.2.0, but not noticed until 1.2.5, by which
point it no longer seemed worthwhile to reinstate it. Please use the property
API instead, e.g. |
1.2.5 |
Python |
if idx in mset |
This was nominally implemented, but never actually worked. Since nobody seems
to have noticed in 3.5 years, we just removed it. If you have uses (which were
presumably never called), you can replace them with:
|
1.3.0 |
Python |
Non-pythonic iterators |
Use the pythonic iterators instead. |
1.3.0 |
Python |
Stem_get_available_languages |
Use Stem.get_available_languages instead (static method instead of function) |
- 1(1,2,3,4,5,6,7,8,9,10,11,12)
This affects all SWIG generated bindings (currently: Python, PHP, Ruby, Tcl8 and CSharp)
- 2
This affects all SWIG-generated bindings except those for Ruby, support for which was added after the function was deprecated in Xapian-core.
- 3(1,2,3,4)
This affects all SWIG generated bindings except those for Ruby, which was added after the function was deprecated in Xapian-core, and PHP, where empty is a reserved word (and therefore, the method remains “is_empty”).
- 4
Python handles this like C++. Ruby renames it to ‘call’ (idiomatic Ruby). PHP renames it to ‘apply’. CSharp to ‘Apply’ (delegates could probably be used to provide C++-like functor syntax, but that’s effort and it seems debatable if it would actually be more natural to a C# programmer). Tcl8 renames it to ‘apply’ - need to ask a Tcl type if that’s the best solution.
Omega¶
Removed |
Feature name |
Upgrade suggestion and comments |
|---|---|---|
1.0.0 |
$freqs |
Use |
1.0.0 |
scriptindex -u |
|
1.0.0 |
scriptindex -q |
|
1.1.0 |
scriptindex index=nopos |
Use |
1.3.0 |
|
Use |