“我犯了错误”;基于点的字段不支持rord();在SOLR 7.5中。如何修复它?
为了提高Solr7的性能,我使用了函数“我犯了错误”;基于点的字段不支持rord();在SOLR 7.5中。如何修复它?,solr,Solr,为了提高Solr7的性能,我使用了函数 recip(rord({dateField}),1,1000,1000) 但是在解决这个问题时出现了错误 基于点的字段不支持rord() 如何在SOLR 7中克服这个问题。但是,它在SOLR 6.5中运行良好,正如在schema中一样。xml dateField是TriDateClass的实例。使用ms获取日期字段的毫秒值,而不是它在索引中的逆序位置。它同时适用于基于点和基于Trie的字段 ms函数 返回其参数之间的毫秒差。日期与Unix或POSIX时间
recip(rord({dateField}),1,1000,1000)
但是在解决这个问题时出现了错误
基于点的字段不支持rord()
如何在SOLR 7中克服这个问题。但是,它在SOLR 6.5中运行良好,正如在schema中一样。xml dateField是TriDateClass的实例。使用
ms
获取日期字段的毫秒值,而不是它在索引中的逆序位置。它同时适用于基于点和基于Trie的字段
ms函数
返回其参数之间的毫秒差。日期与Unix或POSIX时间纪元(UTC 1970年1月1日午夜)相关
例如
recip(ms(现在,上次修改),3.16e-11,1,1)
。您还可以将现在更改为一个静态日期,每天都会更改,以便更好地查询。-我想知道,您是如何得出m=3.16e-11的值的?这是Solr示例中使用的默认值,并将单位从ms更改为一年-即一年的文档对应于0.5的提升:“乘数3.16e-11将单位从毫秒更改为年(因为每年大约有3.16e10毫秒)。因此,最近的日期将产生接近1/(0+1)或1的值,过去一年的日期将得到大约1/(1+1)或1/2的乘数,两年的日期将产生1/(2+1)或1/3。”