java - 如何计算集合/索引中的所有 token 计数

标签 java lucene information-retrieval

我使用 Lucene 5.3.1,并且已经对一些文档建立了索引,现在正在尝试找到一个内置函数来计算所有标记计数(整个集合/索引)

我知道我可以遍历所有文档并对它们的长度进行求和。但由于我的复杂算法会增加运行时间,因此我试图避免这种方法。我认为 lucene 可能有一个 api 用于此...

毕竟,我用谷歌搜索了这个函数(或任何类似的函数),但我找不到任何有用的链接。

现在的问题是:是否有任何内置函数可以返回集合中所有 token 的数量(即整个索引)?如果没有,还有其他最佳方法吗?

感谢任何帮助,谢谢。

最佳答案

最终我找到了解决方案。

我按以下方式使用CollectionStatistics:

CollectionStatistics collectionStats = indexSearcher.collectionStatistics("Body");
long token_count = collectionStats.sumTotalTermFreq();

sumTotalTermFreq() 方法返回集合中的所有 token 。它可以修复任何查询。

关于java - 如何计算集合/索引中的所有 token 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775700/

相关文章:

java.net.SocketException : Cannot allocate memory (not Mac) 异常

java - 如何使用 java 在 unix 中从 Windows 运行 bash 程序

indexing - 快速内存倒排索引

java - 我应该只将 Lucene 用于搜索吗?

java - 信息检索系统的数据结构/算法

mysql - 哪个数据库可以用来存储NLP引擎处理过的数据

java - 如何设置以毫米为单位的边距?

java - Spring @ModelAttribute 模型字段映射

full-text-search - Lucene标准分析仪vs Snowball

search - Solr:当索引短语短于查询时进行短语搜索