我将DOB存储在MySQL数据库中,同时在SOLR中索引数据我想用年计算年龄并将其存储到另一个字段
有没有办法做到这一点。
我可以计算用户首次注册并进入DOB时的年龄,但是我无法知道每年更新用户的年龄。
如果在编制索引时这样做不是正确的方法,您能否建议我这样做的方法
由于
答案 0 :(得分:0)
不要认为您可以通过响应返回计算字段 可以在客户端轻松完成计算,消耗Solr响应。
Function queries允许您对字段值进行大量操作。
e.g。 milli second between the current date and dob
ms(NOW,dob)
但他们只是在查询中使用而不是影响响应。
答案 1 :(得分:0)
如前所述,您可以使用函数查询来计算年龄。您还可以使用字段名称别名在 Solr 响应中返回一个新字段,例如:
&fl=age:div(ms(NOW,dob_dt),86400000)
将返回一个名为 age 的新字段,其中包含 dob_dt 字段和当前日期之间的差异。函数 query ms(NOW,dob_dt) 将返回从 dob_dt 到当前日期的毫秒数。 div() 函数将此值转换为天数(即 1000606024)。将此扩展为转换为年 (1000606024*365):
&fl=age:div(ms(NOW,dob_dt),31536000000)