Anna Björk Nikulásdóttir created LUCENE-5171:
------------------------------------------------
Summary: AnalyzingSuggester and FuzzySuggester should be able to
share same FST
Key: LUCENE-5171
URL: https://issues.apache.org/jira/browse/LUCENE-5171
Project: Lucene - Core
Issue Type: Improvement
Components: modules/other
Affects Versions: 4.3.1, 4.4
Reporter: Anna Björk Nikulásdóttir
In my code I use both suggesters for the same FST. I use
AnalyzerSuggester#store() to create the FST and later on
AnalyzingSuggester#load() and FuzzySuggester#load() to use it.
This approach works very well but it unnecessarily creates 2 fst instances
resulting in 2x memory consumption.
It seems that for the time being both suggesters use the same FST format.
The following trivial method in AnalyzingSuggester provides the possibility to
share the same FST among different instances of AnalyzingSuggester. It has been
tested in the above scenario:
public boolean shareFstFrom(AnalyzingSuggester instance)
{
if (instance.fst == null) {
return false;
}
this.fst = instance.fst;
this.maxAnalyzedPathsForOneInput = instance.maxAnalyzedPathsForOneInput;
this.hasPayloads = instance.hasPayloads;
return true;
}
One could use it like this:
analyzingSugg = new AnalyzingSuggester(...);
fuzzySugg = new FuzzySuggester(...);
analyzingSugg.load(someInputStream);
fuzzySugg = analyzingSugg.shareFstFrom(analyzingSugg);
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]