gpt4 book ai didi

java - 接受多个字段的 Solr 查询返回列表中的第一个非空值,如 oracle 中的合并

转载 作者:行者123 更新时间:2023-12-04 03:56:47 25 4
gpt4 key购买 nike

我们要求有三个字段用户日期、记录日期和编码日期。 我们使用 Solr 进行搜索,我们需要使用条件检索记录,如果用户日期存在值,则使用它,否则检查记录的日期,如果它也不包含值,则使用编码日期,如果所有三个字段都不包含值,则忽略该字段.

此要求类似于 oracle 中的 COALESCE 功能,它接受两个或多个参数并返回列表中的第一个非空值。如果所有参数都包含空值,则返回空值。

更新::我们正在使用 Solr 3.5.0

例如下面是我在表中的值

 DocumentID   User entered date      Recorded date      Encoded date
A123 14th April 2016 12th April 2016
A124 12th April 2016 11th April 2016
A125 13th April 2016 12th April 2016
A126 12th April 2016
A127 15th April 2016

如果我们搜索 2016 年 4 月 12 日,那么 Solr 应该返回 A124、A126 而不是 A123 或 A125 的输出,因为我们分别为这些字段输入了用户输入的日期和记录的日期。

最佳答案

您最好的选择可能是按照您想要的顺序将字段复制到一个单独的字段中,然后只保留第一个值。在最新的 Solr 中,我相信这可以在 UpdateRequestProcessor 步骤中使用 CloneField 完成。然后 FirstFieldValue处理器。但是,我很确定,这些 URP 是在 5.x 中引入的,因此在 Solr 3.5 中不可用。

我怀疑在将数据发送到 Solr 之前,您真的必须在数据中应用此域逻辑。

关于java - 接受多个字段的 Solr 查询返回列表中的第一个非空值,如 oracle 中的合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36761761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com