OK I looked at the SpellChecker code from the Lucene contrib) and
there is no trivial way to integrate it more nicely into Hibernate
Search. They did not really plan for flexibility.
But it's doable to fork this code and make a spellchecker feature in
Hibernate Search. Here are a few limitations they have that we need to
remove. Here is a proposal.
- more than one field and even more than one index should be the
source of the dictionary
- declaring which field is part of a dictionary should be
declarative @AddToDictionary(name="main-dictionary") (with probably an
optional field name(s))
- for a given dictionary name, we need to associate an index and
probably a field prefix (to share the same index for all
dictionaries). This couold be by annotations or in the configuration
(not sure)
- this index should be kept like any other DirectoryProvider in the
HSearch intrastructure (we could then reuse ReaderProvider internally
and don't have leaks).
- we will probably add a manual dictionary reindex method and the
SpellChecker API should be in the SearchFactory.
sf.getDictionary("main-dictionary").spellcheck(word, suggestion);
sf.getDictionary("main-dictionary").spellcheck(word, suggestion,
entity, properties...); //not sure how useful is this one really
sf.getDictionary("main-dictionary").reindex();
Of course this needs to be refined.
This is probably 3 or 4 days of work but unfortunately we cannot do
that for the book it seems. I would be wort mentioning in the section
that a more integrated solution in on it's way.
--
Emmanuel Bernard
http://in.relation.to/Bloggers/Emmanuel |
http://blog.emmanuelbernard.com
|
http://twitter.com/emmanuelbernard
Hibernate Search in Action (
http://is.gd/Dl1)
On Sep 12, 2008, at 09:15, John Griffin wrote:
Here's the file as a zip. Maybe the pdf wasn't passing.
Also, Nermina pointed out to me that I skipped section 7.3. So ANY
reference