首页 > 解决方案 > 如何限制 Solr 搜索以仅获取小于特定日期的最新匹配记录?

问题描述

H,基本上在一个 EMPLOYEE 表中,该表可以为具有不同 ENTRY_DATE 的员工提供多条记录,我想为每个员工将以下查询的结果限制为 1

SELECT * FROM EMPLOYEE WHERE EMP_NAME IN (...) AND ENTRY_DATE < TODAY ORDER BY ENTRY_DATE DESC

目前我正在从 repo 中获取所有匹配的结果并在我的 Java 代码中查找最新记录,但是当 emp_list 很大并且总结果大于结果的 MaxSize 时会产生问题,在这种情况下,很少有员工被跳过。

有没有办法在 Solr 搜索中直接从 repo 中查询最新记录?

任何帮助,将不胜感激。

标签: javasolr

解决方案


下面的 Solr 查询给出了所需的结果

q=EMP_NAME&group=true&group.field=EMP_NAME&group.limit=1&sort=ENTRY_DATE desc

您也可以搜索多个 EMP_NAME

q="EMP_NAME1" OR "EMP_NAME2"&group=true&group.field=EMP_NAME&group.limit=1&sort=ENTRY_DATE desc

结果分组-> https://lucene.apache.org/solr/guide/8_1/result-grouping.html


推荐阅读