是否有一种快速简便的方法可以从Lucene索引中获取术语频率,而无需通过TermVectorFrequencies
类进行,因为这需要花费大量时间来处理大型集合?
我的意思是,有没有像TermEnum
文件频率和术语频率一样的东西?
更新:使用TermDocs太慢了.
使用TermDocs
以获得长期的频率给定文档.与文档频率一样,您可以IndexReader
使用感兴趣的术语从a获得术语文档.
你不会找到比TermDocs
没有失去一般性更快的方法.TermDocs
直接从索引段中的".frq"文件中读取,其中每个术语频率按文档顺序列出.
如果这"太慢",请确保您已优化索引以将多个段合并为一个段.按顺序迭代文档(跳过正常,但不能有效地在文档列表中来回跳转).
您的下一步可能是进行额外的处理,以创建一个更加专业化的文件结构SkipData
.我个人会寻找一个更好的算法来实现我的目标,或提供更好的硬件 - 大量的内存,要么持有RAMDirectory
,要么给操作系统在自己的文件缓存系统上使用.