我正在研究类似于在亚马逊网上购物的问题。同时处理多个用户搜索查询的体系结构
有很多产品及其信息都存储在数据库中,用户可以输入一个搜索词,并返回最匹配的产品列表。
目前我使用Lucene来处理搜索过程。这是一个非常简单的架构:
- 当用户输入搜索词,Lucene的将经历整个数据库的每一个产品指标
- 然后Lucene的将返回最匹配的产品列表
原型的问题是,当有许多用户查询时,对于每个用户,lucene需要遍历整个数据库以进行索引。如果用户查询,然后注销,然后再次查询,Lucene也需要再次循环。速度非常慢。
那么有什么方法可以改善这种(或技术选择)?
为什么要重建每个查询的整个索引?我甚至读过那个吗? *当然*这很慢。不要这样做。 – femtoRgon
当你说“lucene需要遍历整个数据库来索引”时,你是什么意思?你是否认真索引所有文件!?如果是,为什么? – Rushik
@femtoRgon感谢您的咨询! Lucene新增功能,以及我在RAMDirectory中学习存储索引的示例,现在我意识到我应该使用FSDirectory,RAMDirectory主要用于测试。 – user2628641