[jsword-devel] Latest changes

DM Smith dmsmith555 at yahoo.com
Fri Mar 25 04:45:32 MST 2005

I have just checked in the final changes for today's release of 0.9.9.

I have put in an experimental implementation in for "Match" using 
Lucene's fuzzy search.
I did this by creating a LuceneThesarus which appends a ~ to each word 
presented to it.
Since this is done after the parsing of the search query, it does not 
interfere with ~3, the
"blur" proximity search.

In making this change, I found some problems, which I did not fix. The 
basic problem is
that TallyPassage is used exclusively, regardless of the "advanced" 
user's choice. This is
necessary for "Match" to work, but it is overkill otherwise. The reason 
that the code has
this problem is that match is not a state of a search (as indicated by 
the check box), but
it is a decoration of the user's search string. Once the decorated 
search string is parsed,
the remaining code deals with parts of the search in isolation, with the 
partial results being
accumulated into a Key that was created to hold the final results. The 
point at which the
accumulating Key is created has no knowledge of what kind of Key is needed.

A possible fix is to create the notion of a ranked search. As a search 
is done, a flag is
passed indicating that ranking information is desired. When keys are 
created, a TallyPassage
will be created if ranking is desired, otherwise the "advanced" user's 
choice of Passage
will be used.

Today, match uses ranking to determine the best 20 matches. It would 
continue to do so.
However, it would become explicit rather than implicit.

Some more problems:
I don't know if it were deliberate or not, but when a search was done in 
the past, the label
for the tab reflected the search request, not the results. Today it 
gives the results.

Match should return its results in ranked order.

More information about the jsword-devel mailing list