Lucene.net并经常更新字段

时间:2012-05-05 21:20:19

标签: c# asp.net-mvc lucene.net

我有内容实体保存到数据库和Lucene进行全文搜索。 在该实体中,我有字段评级,当用户+或 - 评级时更新。 所以评级可以随时更新,我需要显示正确的评级值如何做得更好?我应该将评级保存到Lucene文档并在每次用户更新时更新吗?

1 个答案:

答案 0 :(得分:1)

通常方法如下:

  • 在Lucene中存储实体ID,因此您可以通过此ID轻松地从数据库或缓存加载您的实体。
  • 存储实体字段,您将通过该字段进行搜索,过滤或排序。例如,如果您按用户名搜索,则存储用户名。如果要按用户名和用户bio进行搜索,请存储这两个字段。但是,如果您不需要在此字段中进行任何搜索,请不要存储例如用户年龄或用户电话。与评级相同 - 如果您不需要按评分搜索(例如,您不需要执行以下查询:搜索所有评级为> 100或评级为!= 0等的用户)请勿在Lucene中存储评级。而是在Lucene中搜索,获取实体ID,然后从数据库或缓存中检索评级。这样,您只需要更新数据库中的评级,并且只有在少数字段(如用户名或用户生物)发生变化的情况下才更新Lucene索引。