[bt-devel] Re: BibleTime development

Martin Gruner mg.pub at gmx.net
Sat Nov 12 15:18:42 MST 2005


Hey Lee,

glad that you're interested. We had many people show interest, I hope that you 
prove it. =)

Please have a look at the Sword sources. You will find some classes that offer 
search capabilities. (E.g. a normal search, a regular expression search and 
others). One of them is an index-based one. A while ago we decided NOT to use 
it in BibleTime because of the awfully slow release cycle in Sword and 
because clucene (http://clucene.sf.net), which it is based on, was still in a 
buggy state and its development stalled. We'd like to stick with that 
decision for now, at least.

We do want an index based search, in fact in future we want to offer only one 
search instead of different ones, which offers all the features (e.g. 
powerful search syntax) and is lightning fast. =) This is what you could 
contribute at present.

You are basically free to choose a way to reach this goal. However, Joachim 
and I suggest that you carefully examine clucene and the way it is used in 
Sword at present. Is it more stable now that its development has speeded up a 
lot? How are its unicode handling capabilities? It does offer a powerful 
search syntax (and thus would fulfill our aims outlined above), and is 
perhaps one of the best tools available, so it might be advisable to use it 
and not reinvent the wheel.

If this turns out positive, then you could start by copying the clucene based 
code from Sword to BibleTime, and make modifications / adaptions for lucene 
0.9.x, if needed. We need one or more classes in the backend which can be 
used by the search dialog. We gain more power over the clucene internals by 
maintaining our own search logic, as well as perhaps more speed because we 
can work with QT Strings directly (clucene probably does use c strings 
internally, though).

Later we might need to use facilities that IBM's ICU (http://icu.sf.net) 
provides. E.g., in some languages there are no spaces between words, and for 
index creation a separation into words needs to take place. So if clucene 
cannot do it, we have to use ICU (which offers a lot more, though).

But this can come later. The first step would be a little research on clucene 
and a decision if we can use it. The second one would be an integration of 
clucene into our backend. Once it works as desired, we can change the UI of 
the Search dialog to allow for index creation and the features that the 
search offers. ICU would come after that, if needed at all. If you have a 
technically better alternative than ICU, including your own code, that will 
be fine.

That is Joachim's and my suggestion for a project for you. It is a large task, 
and we only dare to ask you because of your background in Computer Science. 
We can also take "No" as an answer.

Martin

P.S.: Please let us continue on the list, unless you have private messages.

P.P.S.: If you are still interested, mail me your sf id, and I'll add you to 
the project for CVS write access.




Am Freitag, 11. November 2005 04:24 schrieben Sie:
> Martin,
>
> Thank you!  Long-term should be possible.
>
> As for index-based searches, I am familiar with the concept, but I
> haven't implemented a optimized search engine or any thing like that.
> I'm not afraid of diving in there if need be, though.  What did you have
> in mind?
>
> Thanks,
>
> Lee C.


More information about the bt-devel mailing list