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.
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