我正在使用 Lucene 开发商店搜索 API。
我需要在括号中显示每个城市、州组合的商店搜索结果及其频率......例如:
Los Angles,CA (450)
Atlanta,GA (212)
Boston, MA (78)
.
.
.
到目前为止,如果用户说“显示所有商店”,我的搜索结果平均会返回大约 7000 个 Lucene 文档。在这个用例中,我最终显示了大约 800 个独特的 City,State 记录,如上所示。
我正在重写HitCollector
类的Collect
方法并检索向量,如下所示:
var vectors = _reader.GetTermFreqVectors(doc);
然后我遍历这个集合并计算每个唯一城市、州组合的频率。
但这在性能上变得非常非常缓慢......有没有更好的方法来分组搜索结果和计算 Lucene 中的频率?一个代码片段会很有帮助
另外,请建议我是否可以使用任何其他技术/技巧来优化我的 Lucene 搜索代码....
谢谢阅读!