使用Lucene 4.9(Java),我一直在寻找一种实现自动完成/建议功能的方法。目标是使用索引文档中使用的几个字段数据作为字典的来源。基于此生成字典的最佳实践或建议方法是什么?
我尝试过LuceneDirectory,但问题是它只接受一个字段,如下所示:
LuceneDictionary ld = new LuceneDictionary(indexReader, "fieldname");
我正在寻找的东西与此类似,但有可能提供一个带字段的字符串数组来填充我的字典。
我的下一步是查看LuceneDirectory类的源代码,希望自己创建自定义的Dictionary类来实现Lucene目录接口。然而,这超出了我的范围,我希望其他人可能已经完成了这个,或者知道如何继续。
总结:
1:如何使用来自多个字段(条款)的数据从现有目录创建字典?
2:如何在创建字典后更新字典?我应该定期重新生成它还是有其他最佳实践?
答案 0 :(得分:1)
您可以向SpellChecker
添加多个词典,例如:
SpellChecker spellchecker = new SpellChecker(spellIndexDirectory);
spellchecker.indexDictionary(new LuceneDictionary(indexReader, "fieldname"));
spellchecker.indexDictionary(new LuceneDictionary(indexReader, "anotherfield"));