C# Lucene.net和频繁更新字段
我有内容实体,保存到数据库和Lucene进行全文搜索。 在该实体中,我有字段评级,该字段在用户+或-评级时更新。C# Lucene.net和频繁更新字段,c#,asp.net-mvc,lucene.net,C#,Asp.net Mvc,Lucene.net,我有内容实体,保存到数据库和Lucene进行全文搜索。 在该实体中,我有字段评级,该字段在用户+或-评级时更新。 所以评级可以随时更新,我需要显示正确的评级值如何做得更好?我是否应该将评级保存到Lucene文档,并在用户每次更新时更新它?通常的方法如下: 将实体Id存储在Lucene中,这样您就可以根据此Id轻松地从数据库或缓存加载实体 存储用于执行搜索、筛选或排序的实体字段。例如,如果按用户名搜索,则存储用户名。如果要按用户名和用户简历进行搜索,请存储这两个字段。但是,如果您不需要在此字段中
所以评级可以随时更新,我需要显示正确的评级值如何做得更好?我是否应该将评级保存到Lucene文档,并在用户每次更新时更新它?通常的方法如下:
- 将实体Id存储在Lucene中,这样您就可以根据此Id轻松地从数据库或缓存加载实体
- 存储用于执行搜索、筛选或排序的实体字段。例如,如果按用户名搜索,则存储用户名。如果要按用户名和用户简历进行搜索,请存储这两个字段。但是,如果您不需要在此字段中进行任何搜索,请不要存储例如用户年龄或用户电话。与评级相同-如果您不需要按评级进行搜索(比如您不需要执行以下查询:搜索评级>100或评级!=0等的所有用户),请不要将评级存储在Lucene中。而是在Lucene中搜索,获取实体ID,然后从数据库或缓存中检索评级。通过这种方式,您将只需要在数据库中更新评级,并仅在少数字段(如用户名或用户简历)发生更改时更新Lucene索引