[Xapian-devel] GSoC xapian node binding thoughts

Liam xapian at networkimprov.net
Wed May 30 23:34:53 BST 2012

On Tue, May 29, 2012 at 7:24 PM, Olly Betts <olly at survex.com> wrote:

> If you change sizeof(Xapian::docid) (and/or the sizes of other types)
> then that's an ABI change, so something built against xapian-core built
> with one docid size simply won't work with xapian-core built with a
> different docid size.

So what happens when our lib tries to load or invoke the incompatible
Xapian? Is it possible to prevent a crash?

> In what context are int64 doc ids necessary? What % of installations use
> > them?
> I doubt may people use them currently, quite possibly nobody does.  But
> that's likely to change in the foreseeable future.  We're probably near
> the point where you could conceivably build an index with this many
> documents on commodity hardware.

We can support more than 2^32 values by converting to double (JS type
Number) for 2^53. But beyond that the values stop converting correctly,
meaning we'd throw an overflow and the user would have to hack the binding

Marius can you make a note to treat docid as a Number instead of uint32,
and check the values from Xapian for overflow?

> Seriously, lazy-loading is oversold from what I've seen. If you have data
> > from real-world Xapian sites that shows a material advantage for it, I'd
> > love to read...
> Any site searching a large Xapian database is relying heavily on lazy
> loading.

For an array, it's necessary, so we'll take start & count args when
building arrays. For objects, I question the value of lazy loading, save
for very large fields.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xapian.org/pipermail/xapian-devel/attachments/20120530/0fd37100/attachment.htm>

More information about the Xapian-devel mailing list