Xapian is een in c++ geschreven 'open source information retrieval library' en kan gebruikt worden als engine achter een zoekmachine. Het geheel omvat een eigen databaseformaat, api's om deze databases te bewerken en te doorzoeken, tools om de databases te controleren en koppelingsmogelijkheden voor andere talen zoals Java, Ruby, PHP en Python. Omega is een applicatie die bovenop Xapian als een zoekmachine kan worden gebruikt om Xapian-databases te doorzoeken. Met Omega worden ook enkele tools meegeleverd die gebruikt kunnen worden om databases te vullen met data. Het ontwikkelteam van The Xapian Project heeft enkele dagen geleden versie 1.0.10 van Xapian en Omega uitgebracht. De lijsten met veranderingen voor de verschillende onderdelen zien er als volgt uit:
Xapian-core 1.0.10
API:matcher:
- Composing an OP_NEAR query with two non-term subqueries now throws UnimplementedError instead of AssertionError (in a --enable-assertions build) or leading to unexpected results (otherwise). This partly addresses bug#201.
- Using a MultiValueSorter with no values set no longer causes a hang or segmentation fault (but it is still rather pointless!)
flint backend:
- If we're using values for sorting and for another purpose, cache the Document::Internal object created to get the value for sorting, like we do between other uses.
quartz backend:
- If the disk became full while flushing database changes to disk, the WritableDatabase object would throw a DatabaseError exception but be left in an inconsistent state such that further use could lead to the database on disk ending up in a "corrupt" state (theoretically fixable, but no tool to fix such a database exists). Now we try to ensure that the object is left in a consistent state, but if doing so throws a further exception, we put the WritableDatabase object in a "closed" state such that further attempts to use it throw an exception.
- Create the lockfile "flintlock" with permissions 0666 so that the umask is honoured just like we do for the other files (previously we used 0600). Previously it wasn't possible to lock a database for update if it was owned by another user, even if you otherwise had sufficient permissions via "group" or "other".
- Fix garbled exception message when a base file can't be reread.
remote backend:
- Fix garbled exception message when a base file can't be reread.
build system:
- xapian-tcpsrv and xapian-progsrv now accept -w as a short form of --writable, as was always intended.
documentation:
- This release now uses newer versions of the autotools (autoconf 2.62 -> 2.63; automake 1.10.1 -> 1.10.2).
examples:
- INSTALL: Add new paragraphs about HP's aCC and IRIX (adapted from footnotes in PLATFORMS).
- PLATFORMS: HP testdrive has been shut down, so all mark all those machines as "no longer available". Update atreus' build report to 1.0.10.
- docs/queryparser.html: Add link to valueranges.html.
portability:
- delve: Add missing "and" to --help output. Report termfreq and collection freq for each term we're asked about.
- Fix to build with GCC 4.4 snapshot.
Omega 1.0.10
build system:
- This release now uses newer versions of the autotools (autoconf 2.62 -> 2.63; automake 1.10.1 -> 1.10.2). The newer autoconf fixes a regression in autoconf 2.62 (and so Omega 1.0.7) with detecting the endian-ness of some platforms.
Xapian-bindings 1.0.10
Python:
- Need to clean testsuite.pyc from srcdir since that's where it gets generated as things stand (upstream fix for Debian bug 506090).