C# Lucene.net和频繁更新字段

C# Lucene.net和频繁更新字段,c#,asp.net-mvc,lucene.net,C#,Asp.net Mvc,Lucene.net,我有内容实体,保存到数据库和Lucene进行全文搜索。 在该实体中,我有字段评级,该字段在用户+或-评级时更新。 所以评级可以随时更新,我需要显示正确的评级值如何做得更好?我是否应该将评级保存到Lucene文档,并在用户每次更新时更新它?通常的方法如下: 将实体Id存储在Lucene中,这样您就可以根据此Id轻松地从数据库或缓存加载实体 存储用于执行搜索、筛选或排序的实体字段。例如,如果按用户名搜索,则存储用户名。如果要按用户名和用户简历进行搜索,请存储这两个字段。但是,如果您不需要在此字段中

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

通常的方法如下:

  • 将实体Id存储在Lucene中,这样您就可以根据此Id轻松地从数据库或缓存加载实体
  • 存储用于执行搜索、筛选或排序的实体字段。例如,如果按用户名搜索,则存储用户名。如果要按用户名和用户简历进行搜索,请存储这两个字段。但是,如果您不需要在此字段中进行任何搜索,请不要存储例如用户年龄或用户电话。与评级相同-如果您不需要按评级进行搜索(比如您不需要执行以下查询:搜索评级>100或评级!=0等的所有用户),请不要将评级存储在Lucene中。而是在Lucene中搜索,获取实体ID,然后从数据库或缓存中检索评级。通过这种方式,您将只需要在数据库中更新评级,并仅在少数字段(如用户名或用户简历)发生更改时更新Lucene索引

为什么将评级存储在lucene索引中?您是将lucene用作搜索服务还是数据存储库?我使用lucene进行文本搜索。我认为在lucene文档中存储评级是不正确的。现在我确定如何正确地执行此操作,因此我将检索ID,然后继续执行其他操作。