2009-09-10 20:53:47 by Amitai Schlair | Files touched by this commit (2) |
Log message:
Update to 1.0.16. From the changelog:
flint backend:
* Fix a typo which stopped this fix in 1.0.12 from working (ticket #398):
If we fail to get the lock after we spawn the child lock process (the common
case is because the database is already open for writing) then we now clean
up the child process properly.
documentation:
* Improve API documentation of QueryParser::set_default_op() and
QueryParser::get_default_op().
portability:
* Fix build failure on Mac OS X 10.6.
|
2009-08-27 15:21:53 by Amitai Schlair | Files touched by this commit (3) | |
Log message:
Update to 1.0.15. From the changelog:
flint backend:
* Backport the lazy update changes from 1.1.2:
WritableDatabase::replace_document() now updates the database lazily in
simple cases - for example, if you just change a document's values and
replace it with the same docid, then the terms and document data aren't
needlessly rewritten. Caveats: currently we only check if you've looked at
the values/terms/data, not if they've actually been modified, and only keep
track of the last document read.
* Fix PostingIterator::skip_to() on an unflushed WritableDatabase to skip
documents which were added and deleted since the last flush. (ticket#392)
documentation:
* Overhaul the doxygen options we use and tweak various documentation comments
to improve the generated API documentation.
* Explicitly document that an empty prefix argument to
QueryParser::add_prefix() means "no prefix".
* Update the documentation comments for Enable::set_sort_by_value(),
set_sort_by_value_then_relevance(), and set_sort_by_relevance_then_value() to
mention sortable_serialise() as a good way to store numeric values for
sorting.
|
2009-07-23 21:24:52 by Amitai Schlair | Files touched by this commit (2) |
Log message:
Update to 1.0.14. From the changelog:
API:
* When using more than one ValueRangeProcessor, QueryParser didn't reset the
begin and end strings to ignore any changes made by a ValueRangeProcessor
which returned false, so further ValueRangeProcessors would see any changes
it had made. This is now fixed, and test coverage improved.
flint backend:
* Use F_FULLFSYNC where available (Mac OS X currently) to ensure that changes
have been committed to disk. (ticket#288)
remote backend:
* Fix handling of percentage weights in various cases when we're searching
multiple remote databases or a mix of local and remote databases.
|
2009-07-19 00:28:00 by Amitai Schlair | Files touched by this commit (2) |
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.
|
2009-07-07 23:12:53 by Joerg Sonnenberger | Files touched by this commit (1) |
Log message:
user-destdir support
|
2009-06-14 20:17:35 by Joerg Sonnenberger | Files touched by this commit (218) |
Log message:
Remove @dirrm entries from PLISTs
|
2009-04-21 00:25:12 by Amitai Schlair | Files touched by this commit (3) |
Log message:
Update to 1.0.12. From the changelog:
* WritableDatabase::remove_spelling() now works properly.
* The QueryParser now treats NON_SPACING_MARK Unicode characters as phrase
generators, which improves handling of Arabic. This is a stop-gap solution
for 1.0.x which will work with existing databases without requiring
reindexing - in 1.1.0, NON_SPACING_MARK will be regarded as part of a word.
(ticket#355)
* Fix undefined behaviour in distribution of OP_NEAR and OP_PHRASE over a
non-leaf subquery (indentified by valgrind on testcase nearsubqueries1).
(ticket#349)
* Enhance distribution of OP_NEAR/OP_PHRASE over non-leaf subqueries to work
when there are multiple non-leaf subqueries (ticket#201).
* Enquire::get_mset() no longer needlessly checks if the documents exist.
* PostingIterator::get_description() output improved visually in some cases.
* Enquire::get_mset():
+ Now throws UnimplementedError if there's a percentage cutoff and sorting is
primarily by value - this has never been correctly supported and it's
better to warn people than give incorrect results.
+ No longer needlessly copies the results internally.
+ When searching multiple databases, now recalculates the maximum attainable
weight after each database which may allow it to terminate earlier.
(ticket#336).
+ Fix inconsistent percentage scores when sorting primarily by value, except
when a MatchDecider is also being used; document this remaining problem
case. (ticket#216)
* Enquire::set_sort_by_value() (and similar methods): Rename the wrongly named
"ascending" parameter to "reverse", and note that its \
value should always be
explicitly given since defaulting to "reverse=true" is confusing and the
default will be deprecated in 1.1.0. (ticket#311)
* Database::allterms_begin(): Fix memory leak when iterating all terms from
more than one database.
* Query::get_terms_begin(): Don't return "" from the TermIterator (happened
when the query contained or was Query::MatchAll).
* Add QueryParser::FLAG_DEFAULT to make it easier to add flags to those set by
default.
|
2009-03-20 20:25:55 by Joerg Sonnenberger | Files touched by this commit (1252) |
Log message:
Simply and speed up buildlink3.mk files and processing.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
|
2009-01-21 07:42:32 by David Sainty | Files touched by this commit (2) |
Log message:
Add xapian-flint-backend and xapian-quartz-backend options, allowing
rationalisation of backends (and also allows wiring the database to the older
database format if desired).
The "suggested options" select support for both formats, which is also the
status quo.
|
2009-01-08 04:43:31 by David Sainty | Files touched by this commit (1) |
Log message:
Buildlink in the required devel/zlib. Fixes build on systems where native zlib \
(header) is not installed.
|