Solr:根据出生日期计算年龄(以年数表示)

0dxa2lsx  于 2022-11-05  发布在  Solr
关注(0)|答案(2)|浏览(231)

我将DOB存储在MySQL DB中,在SOLR中索引数据时,我希望计算年龄(以年为单位)并将其存储在另一个字段中
有办法做到这一点。
我可以计算年龄时,用户第一次注册,并进入DOB,但然后没有办法让我知道更新年龄的用户每年。
如果在编制索引时执行此操作不是正确的方法,您能否提供一些建议
谢谢

o3imoua4

o3imoua41#

不要认为可以获得随响应返回的计算字段。
计算可以在客户端轻松完成,消耗Solr响应。
Function queries允许您在使用字段值时对其进行大量操作。
例如,当前日期和dob之间的毫秒

ms(NOW,dob)

但它们只是我们在查询中使用的,并不影响响应。

bbmckpt7

bbmckpt72#

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

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

将返回一个名为age的新字段,其中包含dob_dt字段和当前日期之间的差值。函数query ms(NOW,dob_dt)将返回从dob_dt到当前日期之间的毫秒数。div()函数将此值转换为天数(即1000606024)。将此函数扩展为转换为年份(100060* 6024365):

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

相关问题