Solr:计算DOB的年龄

时间:2011-11-02 11:13:41

标签: solr dob

我将DOB存储在MySQL数据库中,同时在SOLR中索引数据我想用年计算年龄并将其存储到另一个字段

有没有办法做到这一点。

我可以计算用户首次注册并进入DOB时的年龄,但是我无法知道每年更新用户的年龄。

如果在编制索引时这样做不是正确的方法,您能否建议我这样做的方法

由于

2 个答案:

答案 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)