[Xapian-discuss] Future of Xapian (long)

James Aylett james-xapian@tartarus.org
Tue, 22 Jun 2004 00:32:05 +0100


On Sun, Jun 20, 2004 at 04:32:13PM +0100, Francis Irving wrote:

> > g. More example programs, setup HOWTOs etc. to make the initial learning
> > curve a bit less steep.
> 
> Yes, yes, yes.  And better online documentation, probably with
> comments or some form of easy feedback so you can update it.

Agreed.

> The basic example is fine, but doing fancier stuff (working out how
> to replace documents, date sorting etc.) is hard.  More examples which
> use every feature in xapian-examples would be good.

The slight issue I have here is that there isn't always one way to do
it (replacing a document, for instance, may depend on what you're
using the database for - Omega implements this differently to the way
dbmanage used to).

> Documentation for the Perl/PHP/Python etc. bindings.  Ideally all of
> xapian-examples ported to each one.

Python has documentation, and the bits of xapian-examples that make
most sense to port are done. PHP has documentation in CVS, and has
those of xapian-examples that can be done (ExpandDecider isn't usable
in PHP).

The documentation isn't the best it can be, but it's a start. It will
always work by reference to the C++ docs - I don't think we have the
resource to do otherwise.

> I would add this one here, which is very important:
> 
> j. Complete bindings.  Fix all the various naming problems and error
> reporting problems in all the bindings (Perl and PHP in particular),

We're not going to be able to address this properly until we get stuck
into 0.9.x and look at return codes not exceptions.

> and make them feature complete so you can do anything in Xapian with
> them.  People are quite likely to use the bindings, rather than C++,
> for a search engine, and the incompleteness of the bindings would have
> put me off if I'd had a choice.  

PHP isn't going to get directors unless SWIG can manage it - I
wouldn't want to try to write the wrappers natively, because PHP's
internals are horrible.

> k.  Make it easier to to date sorting, and meta-variable weighting.
> Things like adding a date weight which decays at it goes back in time.
> And some of the other experimental stuff which is the code.  By "make
> it easier", I mean finish off what there is to do this, document it
> well in a manual (you probably need a proper manual), and make sure
> it works from all the language bindings.

This can be done as a WeightDecider (I think), it just needs
documenting and tidying up. And wrapping, which for Python is fairly
straightforward, for Perl is hard but tractable, and for PHP is a
nightmare.

A Python-based application server might be a good approach to this ...

J

-- 
/--------------------------------------------------------------------------\
  James Aylett                                                  xapian.org
  james@tartarus.org                               uncertaintydivision.org