Release Overview for 1.0.7

This page contains a high level description of the more notable changes made for release 1.0.7. For full details of user-visible changes, see the NEWS files in each module:

Build system

  • The configure scripts now warn about unrecognised options (usually these are typos like --with-pythpn).


  • Fixes for building with GCC 2.95.3 and GCC 4.3.
  • Support for AIX 6.1 and improved support from Mac OS X Leopard from updating libtool.
  • Fixes to header checks in omega's configure for Mac OS X.
  • Fix probing for iconv to work better when iconv isn't found.
  • Fix compilation error in Omega on FreeBSD, introduced in 1.0.5.


  • If there were gaps in the document id numbering, these operators could return document ids which weren't present in the database.
  • These operators are now more efficient when there are a lot of "missing" document ids (bug#270).


  • Setting sort by value was being ignored by a Xapian::Enquire object which had previously had a Xapian::Sorter set (bug#256).


  • The lower and upper bounds on the number of matches could occasionally be incorrect (or correct but less tight than possible) when using certain combinations of a MatchDecider, collapsing, and percentage cut-offs. All known cases of this have been fixed.
  • We now track the number and rate at which a MatchDecider rejects documents, and use this to adjust the estimate and upper bound on the number of matches.
  • Fix problem on x86 with the top match getting 99% rather than 100% (caused by excess precision in intermediate floating-point values).

QueryParser fixes

  • Cases of O(N2) behaviour in the QueryParser have been fixed.

Flint backend

  • Do less work when reopen() is called if the database hasn't changed (bug#261).
  • Fix handling of modified tables which had previously only had sequential updates - this usually manifested as zlib errors (bug#259).

Quartz backend

  • Fix handling of modified tables which had previously only had sequential updates - this usually manifested as incorrect data being returned (bug#259).

Remote Backend

  • Improve performance of matches with multiple databases at least one of which is remote, and when the top hit is from a remote database (bug#279).
  • We now wait for the connection to close after sending MSG_SHUTDOWN for a WritableDatabase, which ensures that changes have been written to disk and the lock released before the WritableDatabase destructor returns (as is the case with a local database).

Inmemory Backend

  • Fix bug with storage of values when replacing a document, or if there are gaps in the docid numbering.


  • Fix build of Python extension under mingw.
  • Fix where the Tcl module gets installed.

Search::Xapian Perl bindings

  • Handle exceptions from Xapian::Stem constructor.
  • Search::Xapian::Query->new(<OP>, <TERMS>) now allows integers and numbers as terms - these are coerced to strings as with standard Perl parameter passing.


  • Overhaul the $highlight colour combinations since some were rather unreadable (Debian bug 484456).


  • When indexing text files, handle UCS-2 and UTF-16 text files with a byte-order mark (BOM), and ignore any UTF-8 "byte-order" mark.
  • The built-in conversion code (used when iconv isn't available) now handles UCS-2/UTF-16 with and without a BOM, and also the explicit BE and LE forms.
Last modified 4 years ago Last modified on 26/01/16 10:10:43
Note: See TracWiki for help on using the wiki.