我有保存到数据库和 Lucene 以进行全文搜索的内容实体。在那个实体中,我有字段评级,当用户 + 或 - 评级时更新。所以评级可以随时更新,我需要显示正确的评级值如何做得更好?我应该将评级保存到 Lucene 文档并在每次用户更新时更新它吗?
问问题
303 次
1 回答
1
通常方法如下:
- 在 Lucene 中存储实体 ID,因此您可以通过此 ID 从数据库或缓存中轻松加载实体。
- 存储实体字段,您将通过这些字段进行搜索、过滤或排序。例如,如果您按用户名搜索,请存储用户名。如果要按用户名和用户简介搜索,请存储这两个字段。但是,如果您不需要在此字段中进行任何搜索,请不要存储例如用户年龄或用户电话。与评级相同 - 如果您不需要按评级搜索(假设您不需要执行以下查询:搜索评级 > 100 或评级!= 0 等的所有用户)不要在 Lucene 中存储评级。而是在 Lucene 中进行搜索,获取实体 ID,然后从数据库或缓存中检索评级。这样,您只需要在数据库中更新评级,并且仅在少数字段(如用户名或用户简介)更改的情况下更新 Lucene 索引。
于 2012-05-06T08:27:57.843 回答