[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