Gmane
Gravatar
From: H. William Welliver III <hww3 <at> riverweb.com>
Subject: Public.Xapian: Full Text indexing and modules using C++
Newsgroups: gmane.comp.lang.pike.user
Date: 2007-02-09 06:56:23 GMT (2 years, 20 weeks, 6 days and 7 hours ago)
I thought that there might be some interest in hearing about another  
of my experiments on the fringe of Pike.  Some of you may recall that  
I've been using Lucene with the Java bridge module to do Full Text  
indexing. Unfortunately, Lucene has some odd habits, and the Java  
interface never lent itself to an easy development experience.   
Looking for a better solution, I arrived at the subject of this  
announcement:  an interface to the Xapian[1] full text indexing  
library. I've put together a first cut, with basic functionality  
present.

The interesting item of note is that Xapian is written using C++, and  
I was nervous about what would be required to make it work with Pike.  
The answer is, not much. I even hacked up the makefile so that I  
could use CMOD with C++.  I'm not sure if there's merit in including  
the changes in Pike, it would probably depend on the perceived  
likelihood of people developing module code using C++. Persons  
interested in playing around can download the code[2] and have a go.  
I should warn those foolish enough to try this that the build process  
is mostly manual, and that you'll probably need to get a recent pike  
from CVS to have the proper makefile targets.

Additionally, I updated the FinsFullText[3] demo application to use  
the new module instead of Lucene. For those not familiar with it,  
this app provides an XMLRPC index to full text searching and  
indexing, and it supports multiple indexes in a single installation.

Finally, a demo can be found at my website[4], the search box at the  
top right hand side uses FullTextFins and the Xapian bindings.

As always, comments and suggestions are welcome!

Bill
hww3 <at> riverweb.com

[1] http://www.xapian.org
[2] http://modules.gotpike.org/module_info.html?module_id=42
[3] http://ria.riverweb.com:8080/viewrep/cvs/FullText
[4] http://hww3.riverweb.com