根据 Lucene 词典的用法对建议的单词进行排序

Sorting suggested words by usage from Lucene Dictionary

我是 Java/Lucene 的初学者。我正在尝试按 Lucene 词典中最常用的词对前 20 个建议词进行排序。

此代码片段 returns 我的前 20 个单词以字符 "a" 开头,来自字段 "tokens":

AnalyzingSuggester suggester = new AnalyzingSuggester(dir, "sugest", new StandardAnalyzer(CharArraySet.EMPTY_SET));
suggester.build(new LuceneDictionary(indexReader, "tokens"));
List<LookupResult> lookupResults = suggester.lookup("a", false, 20);

但它是按字母顺序排列的。我想按最常用的词(或 "top ranking terms",因为它在 Luke 中命名)对其进行排序。我找到了一些关于 SortSortField 的东西,但我不知道如何在这个建议场景中使用它。此任务是否有任何简单的解决方案,或者我是否需要编写自己的功能,我需要在其中获取特定单词的频率?

尝试使用 HighFrequencyDictionary,而不是像这样:

AnalyzingSuggester suggester = new AnalyzingSuggester(dir, "sugest", new StandardAnalyzer(CharArraySet.EMPTY_SET));
suggester.build(new HighFrequencyDictionary(indexReader, "tokens", 0));
List<LookupResult> lookupResults = suggester.lookup("a", false, 20);