Path to this page:
Subject: CVS commit: pkgsrc/textproc/xapian
From: Amitai Schlair
Date: 2009-07-19 00:28:00
Message id: 20090718222800.5CA32175D0@cvs.netbsd.org
Log Message:
Update to 1.0.13. From the changelog:
API:
* Xapian::Document no longer ever stores empty values explicitly. This
wasn't intentional behaviour, and how this case was handled wasn't
documented. The amended behaviour is consistent with how user metadata
is handled. This change isn't observable using Document::get_value(),
but can be noticed when iterating with Document::values_begin(), using
Document::values_count(), or trying to delete the value with
Document::remove_value().
matcher:
* If a query contains a MatchAll subquery, check for it before checking the
other terms so that the loop which checks how many terms match can exit
early if they all match.
* When an OR or ANY_MAYBE decayed to an AND, we were carefully swapping the
children for maximum efficiency, but the condition was reversed so we were
in fact making things worse. This was noticed because it was resulting in
the same query running faster when more results were asked for!
* Only build the termname to termfreq and weight map for the first subdatabase
instead of rebuilding it for each one. Also don't copy this map to return
it. This should speed up searches a little, especially those over multiple
databases.
* If a submatcher fails but ErrorHandler tells us to continue without it, we
just use a NULL pointer to stand in rather than allocating a special dummy
place-holder object.
* Remove AndPostList, in favour of MultiAndPostList. AndPostList was only used
as a decay product (by AndMaybePostList and OrPostList), and doesn't appear
to be any faster. Removing it reduces CPU cache pressure, and is less code
to maintain.
* Call check() instead of skip_to() on the optional branch of AND_MAYBE.
flint backend:
* Fix a bug in TermIterator::skip_to() over metadata keys.
remote backend:
* Fix xapian-tcpsrv --interface option to work on MacOS X (ticket#373).
* Fix typo which caused us to return the docid instead of the maximum weight
a document from a remote match could return! This could have led to wrong
results when searching multiple databases with the remote backend, but
probably usually didn't matter as with BM25 the weights are generally small
(often all < 1) while docids are inevitably >= 1.
inmemory backend:
* The inmemory backend doesn't support iterating over metadata keys. Trying
to do so used to give an empty iteration, but has now been fixed to throw
UnimplementedError (and this limitation has now been documented).
documentation:
* INSTALL: We no longer regularly test build with GCC 2.95.4 and we're raising
the minimum GCC version required to 3.1 for Xapian 1.1.x.
* Document what passing maxitems=0 to Enquire::get_mset() does.
* docs/queryparser.html: Add examples of using a prefix on a phrase or
subexpression.
* Correct doxygen comments for user metadata functions:
Database::get_metadata() throw UnimplementedError but
WritableDatabase::set_metadata() can.
* Document that Database::metadata_keys_begin() returns an end iterator if the
backend doesn't support metadata.
* HACKING: Update the list of Debian/Ubuntu packages needed for a development
environment.
Files: