如何在 SolR 中按可用性日期排序(并赋予权重)
How to sort (and give weight) by Availability dates in SolR
我的 SolR 数据库遇到了一个大问题。
我的对象有一个日期时间字段 "Available_From" 和一个日期时间字段 "Available_To"。
我们还有一个 "Ranking" 字段用于排序。
我可以使用直接查询正确搜索(例如,给我所有可用的项目)但是当我进行常规搜索时,我找不到一种方法来显示结果 "available NOW" 在第一个地方的项目结果,通常按 "Ranking" 字段排序。
我怎样才能做到这一点?我是否被迫写了一些 java 类(我找到的最接近的东西在那里 https://medium.com/@devchaitu18/sorting-based-on-a-custom-function-in-solr-c94ddae99a12)或者有没有办法处理标准的 SolR 查询?
在此先感谢大家!
在您的情况下,您实际上不需要排序,因为这表明您需要一个字段来确定返回的文档序列。
相反,使用提升 - 通过 bq
或 boost
对现在可用的提升应用非常大的提升,然后根据排名应用提升。您必须根据搜索结果的显示方式调整赋予每个部分的权重。
我的 SolR 数据库遇到了一个大问题。 我的对象有一个日期时间字段 "Available_From" 和一个日期时间字段 "Available_To"。 我们还有一个 "Ranking" 字段用于排序。 我可以使用直接查询正确搜索(例如,给我所有可用的项目)但是当我进行常规搜索时,我找不到一种方法来显示结果 "available NOW" 在第一个地方的项目结果,通常按 "Ranking" 字段排序。 我怎样才能做到这一点?我是否被迫写了一些 java 类(我找到的最接近的东西在那里 https://medium.com/@devchaitu18/sorting-based-on-a-custom-function-in-solr-c94ddae99a12)或者有没有办法处理标准的 SolR 查询? 在此先感谢大家!
在您的情况下,您实际上不需要排序,因为这表明您需要一个字段来确定返回的文档序列。
相反,使用提升 - 通过 bq
或 boost
对现在可用的提升应用非常大的提升,然后根据排名应用提升。您必须根据搜索结果的显示方式调整赋予每个部分的权重。