从目录生成字典(用于Lucene自动完成)

时间:2014-08-24 21:14:57

标签: dictionary autocomplete lucene directory autosuggest

使用Lucene 4.9(Java),我一直在寻找一种实现自动完成/建议功能的方法。目标是使用索引文档中使用的几个字段数据作为字典的来源。基于此生成字典的最佳实践或建议方法是什么?

我尝试过LuceneDirectory,但问题是它只接受一个字段,如下所示:

LuceneDictionary ld = new LuceneDictionary(indexReader, "fieldname");

我正在寻找的东西与此类似,但有可能提供一个带字段的字符串数组来填充我的字典。

我的下一步是查看LuceneDirectory类的源代码,希望自己创建自定义的Dictionary类来实现Lucene目录接口。然而,这超出了我的范围,我希望其他人可能已经完成了这个,或者知道如何继续。

总结:

1:如何使用来自多个字段(条款)的数据从现有目录创建字典?

2:如何在创建字典后更新字典?我应该定期重新生成它还是有其他最佳实践?

1 个答案:

答案 0 :(得分:1)

您可以向SpellChecker添加多个词典,例如:

SpellChecker spellchecker = new SpellChecker(spellIndexDirectory);
spellchecker.indexDictionary(new LuceneDictionary(indexReader, "fieldname"));
spellchecker.indexDictionary(new LuceneDictionary(indexReader, "anotherfield"));