Commit graph

7 commits

Author SHA1 Message Date
abs
162caf3f93 Updated textproc/xapian to 1.2.2
tested on NetBSD 5.x amd64

changelog since 1.0.18 runs to 64k with no obvious highlights.
2010-12-03 09:55:33 +00:00
wiz
cf44edef34 Update to 1.0.18:
Xapian-core 1.0.18 (2009-02-14):

API:

* Document: Add new add_boolean_term() method, which is an alias for add_term()
  with wdfinc=0.

* QueryParser:

  + Add support for quoting boolean terms so they can contain arbitrary
    characters (partly addresses ticket#128).

  + Add ENCLOSING_MARK and COMBINING_SPACING_MARK categories, plus several
    zero-width space characters, as phrase generators.  This mirrors a better
    fix in 1.1.4, but without losing compatibility with existing databases.

  + Fix handling of an explicit AND before a hated term (foo AND -bar).
    (ticket#447)

* TermIterator: Only include trailing '+' or '#' on a term if it isn't followed
  by a word character (makes more sense and matches QueryParser's behaviour).
  (ticket#446)

* Database: Fix many methods to behave better on a database with no
  subdatabases, such as is constructed by Database().  Fixes ticket#415.

testsuite:

* Add test coverage for xapian-compact, and improve coverage for
  WritableDatabase::replace_document().

* apitest: Rename matchfunctor<n> to matchdecider<n> to match current
  terminology.

flint backend:

* When updating documents, don't update posting entries which haven't changed.
  Largely fixes ticket #250.

* If the number of entries in the position table happened to be 4294967296 or
  an exact multiple, Xapian would ignore positional data for that table when
  running queries.

* Iterating all the terms in the database with a prefix is now slightly more
  efficient.

* Fix locking code to work if stdin and/or stdout have been closed.

* If a document is replaced with itself unmodified, we no longer increase the
  automatic flush counter.

* When iterating a posting list modified since the last flush(), the reported
  wdf is now correct (previously it was too high by its old value).

* Replacing a document deleted since the last flush failed to update the
  collection frequency and wdf, and caused an assertion failure when assertions
  were enabled.

* WritableDatabase::replace_document() didn't always remove old positional
  data (the only effect is that the position table was bloated by unwanted
  entries).

* xapian-inspect:

  + New "until" command which shows entries until a specified key is reached.

  + New "open" command which allows easy switching between tables.

* xapian-compact: Fix typos in --help output.

quartz backend:

* Replacing a document deleted since the last flush failed to update the
  collection frequency and wdf, and caused an assertion failure when assertions
  were enabled.

* WritableDatabase::replace_document() didn't always remove old positional
  data (the only effect is that the position table was bloated by unwanted
  entries).

remote backend:

* Throw UnimplementedError if a MatchDecider is used with the remote backend.
  Previously Xapian returned incorrect results in this case.

build system:

* configure: With --enable-maintainer-mode, enable -Werror for GCC >= 4.1
  rather than >= 4.0 as Apple's GCC 4.0 gives bogus uninitialised variable
  warnings.

documentation:

* The API documentation now includes Xapian::Error and subclasses, and doesn't
  mention Xapian::Query::Internal.

* Make clear in the Xapian::Document API documentation that this class is a
  lazy handle and discuss the issues this can cause.

* INSTALL: Improve text about zlib dependency.

* HACKING: Add details of our licensing policy for accepting patches.

examples:

* quest: If no database is specified, still parse the query and report
  Query::get_description() to provide an easy way to check how a query parses.

portability:

* Fix GCC 4.2 warning.

xapian-core 1.0.17 (2009-11-18):

API:

* QueryParser:

  + Fix handling of a group of two or more terms which are all stopwords which
    notably caused issues when default_op was OP_AND, but could probably
    manifest in other cases too.  Fixes ticket#406.

  + Fix interaction of FLAG_PARTIAL and FLAG_SYNONYM.  (ticket#407)

* Database: A database created via the default constructor no longer causes a
  segfault when the methods get_metadata() or metadata_keys_begin() are called.

flint backend:

* Don't try to close the fd one more than the maximum allowable when locking
  the database.  Harmless, except it causes a warning when running under
  valgrind.  (ticket#408)

remote backend:

* Xapian::Sorter isn't supported with the remote backend so throw
  UnimplementedError rather than giving incorrect results.  (ticket#384)

* Fix potential reading off the end of the MSet which is returned internally
  by the remote server.

documentation:

* Various documentation comment improvements for the Database class.

examples:

* examples/quest.cc: Tighten up the type of the error we catch to detect an
  unknown stemming language.

portability:

* xapian-config: Need to quote ^ for Solaris /bin/sh.

* configure: Actually use any flags we determine are needed to switch the
  compiler to proper ANSI C++ mode, when building xapian-core - this stopped
  working in 1.0.12, breaking support for HP's aCC, Compaq's cxx, Sun's CC, and
  SGI's CC.
2010-02-16 14:51:26 +00:00
schmonz
5c7d2e9708 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-08-27 13:21:53 +00:00
joerg
73ae0afd90 Remove @dirrm entries from PLISTs 2009-06-14 18:17:11 +00:00
schmonz
636608a9dd 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-04-20 22:25:12 +00:00
dsainty
9a7ff63cac 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-21 06:42:32 +00:00
schmonz
a3b44764a9 Initial import of Xapian, an Open Source Search Engine Library,
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.
2008-07-26 23:35:05 +00:00