Lucene POJO 索引的一些问题
近期在开放一个基于数据库(基于POJO的)的搜索引擎,现在想优化这个功能的层次架构,遇到一些疑惑。
第一个问题是关于索引的更新,想到两种方案:
- 在service层中直接调用已封装好的 IndexClient.update(pojo),但是发现这样一来,业务层和搜索功能的代码耦合度太高了。(选用)
- 定时去更新所有索引。时间段定得短,索引没问题,但是数据量一大就会占用太多资源;时间定得长,索引就不及时。
想请教下各位有没有好的建议,能较及时的更新索引,又能将业务层和搜索解耦。
第二个问题是关于搜索结果转化为POJO:
- 将POJO所有字段存储起来,在完成搜索后将Document转化成POJO,磁盘访问:索引读取一次。
- 只存储POJO的 class 和 id,在完成搜索后重新从数据库中读数据,磁盘访问:索引读取一次,数据库读取一次。
想请教下各位怎么考虑这个问题。
如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

评论(8)


发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。