Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
“我犯了错误”;基于点的字段不支持rord();在SOLR 7.5中。如何修复它?_Solr - Fatal编程技术网

“我犯了错误”;基于点的字段不支持rord();在SOLR 7.5中。如何修复它?

“我犯了错误”;基于点的字段不支持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时间

为了提高Solr7的性能,我使用了函数

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。”