Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr:从出生日期算起,以年数计算年龄_Solr_Dob - Fatal编程技术网

Solr:从出生日期算起,以年数计算年龄

Solr:从出生日期算起,以年数计算年龄,solr,dob,Solr,Dob,我将DOB存储在MySQL数据库中,在SOLR中为数据编制索引时,我希望以年为单位计算年龄,并将其存储在另一个字段中 有没有办法做到这一点 我可以计算用户首次注册并输入DOB时的年龄,但我无法知道每年更新用户的年龄 如果在编制索引时这样做不是正确的方法,您能给我一些建议吗 谢谢请不要认为您可以将计算字段与响应一起返回。 计算可以很容易地在客户端完成,使用Solr响应 允许您对字段值进行大量操作 e、 g 但它们仅用于查询,不会影响响应。如前所述,您可以使用函数查询来计算年龄。还可以使用字段名别名

我将DOB存储在MySQL数据库中,在SOLR中为数据编制索引时,我希望以年为单位计算年龄,并将其存储在另一个字段中

有没有办法做到这一点

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

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


谢谢

请不要认为您可以将计算字段与响应一起返回。
计算可以很容易地在客户端完成,使用Solr响应

允许您对字段值进行大量操作

e、 g


但它们仅用于查询,不会影响响应。

如前所述,您可以使用函数查询来计算年龄。还可以使用字段名别名在Solr响应中返回新字段,例如:

&fl=age:div(ms(NOW,dob_dt),86400000)
将返回一个名为age的新字段,其中包含dob_dt字段和当前日期之间的差值。函数query ms(现在是dob_dt)将返回从dob_dt到当前日期的毫秒数。函数的作用是:将该值转换为天(即100006024)。将其延长至年(100006024*365):

&fl=age:div(ms(NOW,dob_dt),86400000)
&fl=age:div(ms(NOW,dob_dt),31536000000)