[sword-devel] Fast search?
Troy A. Griffitts
Wed, 27 Sep 2000 15:35:24 -0700
> The algorithms are actually not very difficult at all. :) I will
> (Lord willing) try to write the algorithms in a generic C-like
> format. Then you should be able to easily and quickly port it to
> the language of your choice. I used to work with C, and have not
> used C++ much, so I will not be able to efficiently implement these
> algorithms in Sword. I will leave that to Troy and yourself to do
> this (if you don't mind). Unless someone else volunteers?
There are many C++ coders that I'm sure would volunteer given working C
functions! I will do it if no one else does.
> The benchmarks for some of the searches I have done indicate that the
> response time is sub-second, even for complex searches with wildcards!
> (On a 600 MHz P3... :)
:) That's really not a fair test, though I'm sure your algorythms are
much faster than the current 'scan the text on the fly' method. My PIII
650 at work gives me about a 2 second search with the current method. :)
> I am currently investigating the best way to compress the index file.
> The decompression could still influence the response time, but it will
> not be much.
> The other outstanding issue is to efficiently implement "exact phrase"
> searches (which is in progress).
> *** I still need some answers to the questions I asked a while ago (17/9)
> --> How small do we really want the fast search index file?
I think fighting for a few K is not worth the effort.
> --> Will it replace the current search, or just be an additional option?
In the current architecture, there is a way to report what types of
searches your framework supports. If it does not support the requested
method, it should default to the search to the brute-force method.
> --> What is expected from the fast search?
I'm just hoping for some candidates right now. The current example fast
framework only reports that it handles multiworld, non-case-sensitive
searches bounded, at most, by a VerseKey.
It would be really cool to see your method working with only a few
Thank you for your efforts! I'm excited to see your work in action!