summaryrefslogtreecommitdiff
path: root/textproc/xapian
AgeCommit message (Collapse)AuthorFilesLines
2009-04-20Update to 1.0.12. From the changelog:schmonz3-37/+11
* 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-20Simply and speed up buildlink3.mk files and processing.joerg1-13/+6
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-21Add xapian-flint-backend and xapian-quartz-backend options, allowingdsainty2-14/+36
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-08Buildlink in the required devel/zlib. Fixes build on systems where native ↵dsainty1-1/+2
zlib (header) is not installed.
2009-01-07Update to 1.0.10:wiz2-7/+7
Xapian-core 1.0.10 (2008-12-23): API: * 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!) matcher: * 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. flint 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. quartz backend: * Fix garbled exception message when a base file can't be reread. remote backend: * xapian-tcpsrv and xapian-progsrv now accept -w as a short form of --writable, as was always intended. build system: * This release now uses newer versions of the autotools (autoconf 2.62 -> 2.63; automake 1.10.1 -> 1.10.2). documentation: * 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. examples: * delve: Add missing "and" to --help output. Report termfreq and collection freq for each term we're asked about. portability: * Fix to build with GCC 4.4 snapshot. Xapian-core 1.0.9 (2008-10-31): API: * Database::get_spelling_suggestion() is now faster (15% speed up for parsing queries with FLAG_SPELLING_CORRECTION set in a test on real world data). * Fix OP_ELITE_SET segmentation fault due to excess floating point precision on x86 Linux (and possibly other platforms). * Database::allterms_begin() over multiple databases now gives a TermIterator with operations O(log(n)) rather than potentially O(n) in the number of databases. * Add new Database methods metadata_keys_begin() and metadata_keys_end() to allow the complete list of metadata in a database to be retrieved (this API addition is needed so that copydatabase can copy database metadata). testsuite: * Remove the cached test databases before running the testsuite. * apitest: Fix cursordelbug1 to work on Microsoft Windows (bug#301). * apitest,queryparsertest: Skip tests which fail because the timer granularity is too coarse to measure how long the test took. In practice, this is only an issue on Microsoft Windows (bug#300 and bug#308). matcher: * Adjust percent cutoff calculations in the matcher in a way which corresponds to the change to percentage calculations made in 1.0.7 to allow for excess precision. * Query::MatchAll no longer gives match results ranked by increasing document length. flint backend: * xapian-compact: Fix crash while compacting spelling table for a single database when built with MSVC, and probably other platforms, though Linux got lucky and happened to work (bug#305). build system: * configure: Disable -Wconversion for now - it's not useful for older GCC and is buggy in GCC 4.3. * configure: Set -Wstrict-overflow to 1 instead of 5, to avoid unreasonable warnings under GCC 4.3. documentation: * Minor improvements to API documentation, including documenting the XAPIAN_FLUSH_THRESHOLD environmental variable in WriteableDatabase::flush() (bug#306). * valueranges.html: Fix typos in example code, and drop superfluous empty destructor from ValueRangeProcessor subclass. * HACKING: Several improvements. examples: * copydatabase: Also copy user metadata. Xapian-core 1.0.8 (2008-09-04): API: * Fix output of RSet::get_description testsuite: * Report subtotals per backend, rather than per testgroup per backend to make the output easier to read. flint backend: * Fix WritableDatabase::add_document() and replace_document() not to be O(n*n) in the number of values in the new document. * Fix handling of a table created lazily after the database has had commits, and which is then cursored while still in sequential mode. * Fix failure to remove all the Btree entries in some cases when all the postings for a term are removed. (bug#287) * xapian-inspect: Show the help message on start-up. Correct the documented alias for next from ' ' to ''. Avoid reading outside of input string when it is empty. (bug#286) quartz backend: * Backport fix from flint for WritableDatabase::add_document() and replace_document() not to be O(n*n) in the number of values in the new document. build system: * configure: Report bug report URL in --help output. * xapian-config: Report bug report URL in --help output. * configure: Fix deprecation error for --enable-debug=full to say to instead use '--enable-assertions --enable-log' not '--enable-debug --enable-log'. documentation: * valueranges.html: Expand on some sections. examples: * quest: Fix to catch QueryParserError instead of const char * which QueryParser threw in Xapian < 1.0.0. * copydatabase: Use C++ forms of C headers. Only treat '\' as a directory separator on platforms where it is. Update counter every 13 counting up to the end so that the digits all "rotate" and the counter ends up on the exact total. portability: * Eliminate literal top-bit-set characters in testsuite source code.
2008-07-26Initial import of Xapian, an Open Source Search Engine Library,schmonz5-0/+423
released under the GPL. It's written in C++, with bindings to allow use from Perl, Python, PHP, Java, Tcl, C# and Ruby (so far!) Xapian is a highly adaptable toolkit which allows developers to easily add advanced indexing and search facilities to their own applications. It supports the Probabilistic Information Retrieval model and also supports a rich set of boolean query operators. If you're after a packaged search engine for your website, you should take a look at Omega: an application we supply built upon Xapian. Unlike most other website search solutions, Xapian's versatility allows you to extend Omega to meet your needs as they grow.