java - 如何限制 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 中查询最新记录?
任何帮助,将不胜感激。
解决方案
下面的 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
推荐阅读
- varnish - Varnish Hash 函数从同一个缓存中同时提供 SSR 和 AJAX 调用
- python-3.x - 如何在 keras 模型中访问中间张量以进行梯度计算
- c++ - C++ 递归函数
- angular - 服务收到回调后更新组件视图
- postgrest - 使用 postgREST API 进行 OR 操作
- flutter - 飞镖 | 如何从类构造函数返回不同的对象
- javascript - 尝试打开带有完整结果的 autocomplete.js 弹出窗口
- javascript - 在 html 网站中添加一个按钮以更改为暗模式
- python - Python pandas:使用随机字符串更改每一行的值
- c++ - C ++模板函数检查向量是否包含值?