我有一个包含其中有一个“开始时间”字段,从上个月到从现在起一年文档Solr的实例。 我想补充一个升压查询/功能,提升了的文件,其开始时间字段是接近当前时间的分数。
到目前为止,我已经看到了很多,其使用rord增加提升到谁是新的文件的例子,但我从来没见过像这样的例子。
谁能告诉我该怎么做吗?
谢谢
我有一个包含其中有一个“开始时间”字段,从上个月到从现在起一年文档Solr的实例。 我想补充一个升压查询/功能,提升了的文件,其开始时间字段是接近当前时间的分数。
到目前为止,我已经看到了很多,其使用rord增加提升到谁是新的文件的例子,但我从来没见过像这样的例子。
谁能告诉我该怎么做吗?
谢谢
如果你在Solr的1.4+,那么你必须通过近因是提高访问函数查询了“毫秒”功能和标准,教材的方法:
recip(ms(NOW,startTime),3.16e-11,1,1)
MS给它的两个参数之间的毫秒数。 作为一个整体的表达增强分数由1文档现在过时文档注明日期,由1/2日期为1年前的文档,通过1/3 2年前,等等。(见http://wiki.apache.org / solr的/ FunctionQuery#Date_Boosting ,肖恩蒂姆指出。)
你的情况,你对未来有日期的文档,以及那些将获得分配由上述功能的负分,所以你可能会想在绝对值上扔,就像这样:
recip(abs(ms(NOW,startTime)),3.16e-11,1,1)
ABS(MS(NOW,开始时间))会给startTime和现在之间毫秒,保证非负的#。
这将是一个很好的起点。 如果你愿意,你就可以调整的3.16e-11如果它过于侵略性的还是不够侵略性。
切向中,MS功能将仅基于该TrieDate类,而不是经典的日期和LegacyDate类领域的工作。 如果您的schema.xml是基于例如一个Solr的1.4,那么你的日期字段可能是正确的格式了。
您可以在Solr的1.4做日期的功能。
http://wiki.apache.org/solr/FunctionQuery#Date_Boosting