lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Smiley (JIRA)" <>
Subject [jira] [Commented] (LUCENE-4285) Improve FST API usability for mere mortals
Date Thu, 02 Aug 2012 16:42:03 GMT


David Smiley commented on LUCENE-4285:

Keep in mind, from an FST outsider like me, *FSTs are basically a fancy SortedMap*.  Yet Lucene's
FST API is so complicated that there is a dedicated package of classes, and I need to understand
a fair amount of it.  I'm not saying the package should go away or just one class is realistic,
just that conceptually for outsiders it can and should be simpler than it is.

The Util.get* methods should have instance methods on the FST.  I shouldn't need to look at
Util, I think.

The BytesReader concept is confusing and should be hidden.

Outputs... this aspect of the API is over-exposed; maybe it can be hidden more?  I know I
need to choose an implementation at construction.

FSTEnum is pretty cool, and improving it or creating variants of it could help to simply using
the overall API.  The FST should have a getter for it.  It would be nice if FSTEnum could
advance to the next arc by a label (I need this).  It would be something like next(int). 
Can it be improved to the point where, for example, SynonymFilter can use it?  It would be
nice to reduce the use-cases where users/client-code don't have to even see an Arc.
> Improve FST API usability for mere mortals
> ------------------------------------------
>                 Key: LUCENE-4285
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/FSTs
>            Reporter: David Smiley
> FST technology is something that has brought amazing advances to Lucene, yet the API
is hard to use for the vast majority of users like me.  I know that performance of FSTs is
really important, but surely a lot can be done without sacrificing that.
> (comments will hold specific ideas and problems)

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message