在 Solr DataImportHandler 中从 Oracle 日期获取正确时间

2024-04-09

我正在尝试使用 Solr 的 DataImportHandler 从 Oracle DB 中索引一些文档,除了将 Oracle Date 列正确读取到我的文档中之外,一切工作正常。

我的 Solr 架构中的字段定义为

<field name="release_date" type="date" indexed="true" stored="true" multiValued="false"/>

我首先尝试在 DataImportHandler 中仅执行日期列的基本选择语句,但所有日期都使用不正确的时间值进行索引。例如,数据库中的日期为 2004 年 1 月 12 日上午 09:28(美国东部标准时间),其索引为:

<date name="release_date">2004-01-12T05:00:00Z</date>

所有日期值都有正确的日期,但它们的时间都是 T05:00:00Z。我对正在发生的情况的最佳猜测是,它从数据库读取时间为午夜并将其转换为 UTC。如果是这种情况,我希望正确的值是 T14:28:00Z。

为什么它不获取数据库列的时间部分?我知道有一个日期转换器 http://wiki.apache.org/solr/DataImportHandler#DateFormatTransformer这是 DIH 附带的,但我不太清楚它是如何工作的。我也尝试过做

<field column="RELEASE_DATE" name="release_date" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" /> 

在 DIH 中,但这似乎并没有改变任何事情。


这是与最后一个答案一起使用的完整代码(为了更加清晰)。

在 data-config.xml 文件中从数据库读取日期并转换为时间戳:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

放入 DataImportHandler 实体中,如下所示:

<entity name="startDate" transformer="script:startDateTransform"
        query="select cast(STRT_DT as timestamp) as STRT_DTTS from DATES" >
    <field column="STRT_DTTS" name="STRT_DT" /> 
</entity>

此查询将返回 oracle.sql.TIMESTAMP,但它不会直接映射到日期。因此需要一个脚本转换器。因此我们介绍script:startDateTransform。在同一个 data-config.xml 中,您可以像这样插入 JavaScript:

function startDateTransform(row){
    // Get the timestamp and convert it to a date
    var dateVal = row.get("STRT_DTTS").dateValue();

    // Put the correct date object into the original column
    row.put("STRT_DTTS", dateVal);

    return row;
}

在这里,我们将时间戳转换为日期,更新列值并返回包含新信息的行。

STRT_DT:

<field column="STRT_DTTS" name="STRT_DT" />

现在应该包含正确的日期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Solr DataImportHandler 中从 Oracle 日期获取正确时间 的相关文章

  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • LiveSQL 不断向我显示:ORA-00933:SQL 命令未正确结束[重复]

    这个问题在这里已经有答案了 INSERT INTO Countries Country Capital Cities VALUES Philippines Manila 122 USA Washington 19495 Brazil Bra
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Delphi 5 中的 Oracle 数据库连接

    我正在使用 Delphi 5 版本 我想连接到 Oracle 数据库 我有 TDatabase 组件 我不知道如何通过 Delphi 连接到数据库 请提供连接数据库的步骤 谢谢 The TDatabase http docwiki emba
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 如何增强solr中的字段

    我已经事先确定了提升 我在 solr 索引中有一个名为boost1 该提升字段的值介于 1 到 10 之间 类似于 google PR 排名 这是应该应用于 solr 中运行的每个查询的提升 这是我的索引中的字段 Id Title Text
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • 无法使用 CSS 重置更改正文背景颜色

    这是我的 HTML 代码
  • 当我的主数据库不可用时,Azure 如何通知我?

    我已为我的主 Sql Azure 数据库设置了主动异地复制 如何通知我由于数据中心问题我的主数据库不可用 以便我可以开始应用程序故障转移过程 另外 流量管理器如何通知故障转移事件 在大多数大规模中断中 您的应用程序连接都会受到影响 因此它可
  • Delphi7,创建组合框项

    我想使用组合框为用户提供多种选项 所以有2个组合框 第一个大约有 5 个选项 第二个项目将根据用户在第一个组合框中选择的内容创建 到目前为止 我已经尝试过 Combobox2 Items Strings 1 xxxx 这让我出现这个错误 L
  • 如果复制列表初始化允许显式构造函数,可能会出现什么问题?

    在 C 标准 13 3 1 7 over match list 中 有以下规定 在复制列表初始化中 如果explicit选择了构造函数 初始化格式错误 这就是为什么我们不能做这样的事情的原因 struct foo explicit beca
  • 如何在 UIImageView 之上添加交互式 UILabels?

    我需要在上面添加一些标签UIImageView 可以通过点击标签来更改标签的文本 实现这一目标的最佳方法是什么 我正在使用 Swift 编程语言 在 stackoverflow 上查找一些解决方案 我发现了一些使用的演练String dra
  • 从哪里可以获得最新的 ANSI C 标准文档 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在哪里可以找到最新的 ANSI C
  • Nginx 自定义 PHP error_pages 具有不同的标头状态代码和正文内容

    使用 Nginx 0 8 54 我设置 PHP 错误页面来对某些链接进行重定向 对其他链接进行 404 重定向并显示自定义 HTML 正文 nginx server error page 404 err error php error 40
  • Mercurial Hook - 更改提交前的提交消息

    Edit制作这个基本钩子是为了防止分支名称和提交消息 bugID 不匹配 https gist github com 2583189 https gist github com 2583189 所以基本上的想法是 如果分支名称类似于 bug
  • SQL Server 2016 SSMS Json 格式

    我正在 SQL Server 2016 的 SSMS 中使用 JSON 有没有办法解决 FOR JSON 语句的结果显示为 XML 列的问题 是否有任何设置更改 附加组件 外部工具等 甚至黑客可以减轻这种痛苦 在我的理想世界中 单击 JSO
  • 如何确定 HBase 表的大小?有什么命令可以这样做吗?

    我的 Hbase shell 上有多个表 我想将它们复制到我的文件系统上 有些表超过 100GB 但是 我的本地文件系统中只剩下 55GB 可用空间 因此 我想知道 hbase 表的大小 以便我可以仅导出小尺寸的表 任何建议表示赞赏 谢谢
  • css 星级 html

    我正在关注此页面上的教程 http www henryhoffman com css star rating tutorial html http www henryhoffman com css star rating tutorial
  • GWT序列化问题

    我在返回一个通过 RPC 实现 IsSerialized 的对象的 ArrayList 时遇到了很大的麻烦 IsSerialized pojo 包含一个变量 一个字符串 并具有一个 0 参数构造函数 我已经从我的战争中删除了 gwt rpc
  • NSAttributedString initWithData:options:documentAttributes:error: 非常慢

    我使用这些代码行从简单的 HTML 字符串创建属性字符串 NSDictionary importParams NSDocumentTypeDocumentAttribute NSHTMLTextDocumentType NSCharacte
  • 名为 isActive 的布尔变量的 setter

    我的 pojo 类中有一个名为 isActive 的属性 当我使用 Eclipse IDE 生成此属性的访问器时 它会生成以下 getter 和 setter Getter isActive Setter setActive 但是 当我尝试
  • 选择当前单词的多个实例并更改它们的 vim 方法是什么?

    任何熟悉 Sublime Text 的多光标功能的人都会认识到执行以下操作的模式 多次按热键以选择光标下单词的多个实例 并自动为每个实例创建一个新光标 然后同时编辑每个实例 例如通过用另一个单词或任何您想要的单词替换当前单词 vim 可以通
  • 使 div 不自动拉伸到容器宽度

    我的问题很简单 您能否阻止 div 自动拉伸到其包含元素的宽度 并使其仅水平拉伸到其内部内容所强制的程度 有点像 div 的默认垂直行为 但水平应用 这可能吗 你必须设置display财产给inline block div style di
  • 通过复制另一个 pdf 中的数据来创建新 pdf

    我有一个 pdf 文件 其中包含一些内容 它实际上是一个模板 我已设法从 pdf 中读取内容并根据要求进行更改并将其保存在字符串变量中 现在我必须创建一个新的 pdf 文件 该文件将进行更改 并且初始模板文件不会更改 为了提高透明度 我附上
  • 如何分叉 monorepo 的一部分并且仍然能够合并上游提交?

    Sometimes I find monorepo https github com babel babel blob master doc design monorepo md on GitHub that consists of mul
  • Str::slug 替代印地语和阿拉伯语字符串?

    I use Str slug但是 要生成友好的 URLStr slug 方法返回null在阿拉伯语和印地语字符串上 可能还有中文 日文 韩文和那些字符集 例如 return Str slug null 我怎样才能有效地解决这个问题 我在使用
  • 在 Solr DataImportHandler 中从 Oracle 日期获取正确时间

    我正在尝试使用 Solr 的 DataImportHandler 从 Oracle DB 中索引一些文档 除了将 Oracle Date 列正确读取到我的文档中之外 一切工作正常 我的 Solr 架构中的字段定义为