`
zjnbshifox
  • 浏览: 316584 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

solr导入Oracle日期时间数据的处理

    博客分类:
  • Java
阅读更多
参考文章:
http://stackoverflow.com/questions/10111517/getting-correct-time-from-oracle-date-in-solr-dataimporthandler

在导入Oracle数据的时候,总是只有日期,但是时间信息每个记录都是一样的,在网上查了很多资料,只有参考文章中的办法成功了

做法:在data-config.xml配置文件中加入自定义transformer处理:
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
	<script><![CDATA[
    	function startDateTransform(row){
    	    // Get the timestamp and convert it to a date
    		var dateVal = row.get("ADD_ATT").dateValue();
    		// Put the correct date object into the original column
    		row.put("ADD_ATT", dateVal);
    		if(row.get("MODI_DD")!=null){
	    		dateVal = row.get("MODI_DD").dateValue();
	    		row.put("MODI_DD", dateVal);
    		}
    		return row;
		}
    ]]></script>
<dataSource type="JdbcDataSource" driver="oracle.jdbc.OracleDriver"
	url="jdbc:oracle:thin:@101.174.8.206:1521:orcl"
	user="usr"
	password="pwd"/>

<document name="gqh_position">         
 	<entity name="gqh_position" 
 			query="SELECT CP_ID,P_NAME,CATE_TITLE,COMPANY_NAME,DESCRIPTION,EDU_LEVEL,TITLE_LEVEL,DAN_WEI_JJ,CAST(ADD_AT AS TIMESTAMP) AS ADD_ATT,
 					CAST(MODI_AT AS TIMESTAMP) AS MODI_DD,SALARY FROM GQH_POSITION_FULL_VIEW" 
 			transformer="ClobTransformer,script:startDateTransform">
 			<!--  ROUND(TO_NUMBER(sysdate - modi_at) * 24 * 60) -->                  
				<field column="CP_ID"		name="CP_ID"		/>
				<field column="P_NAME"		name="P_NAME"		/>
				<field column="CATE_TITLE"		name="CATE_TITLE"		 clob="true"/>
				<field column="COMPANY_NAME"	name="COMPANY_NAME"	/>
				<field column="EDU_LEVEL"			name="EDU_LEVEL"			/>
				<field column="DAN_WEI_JJ"			name="DAN_WEI_JJ"	clob="true"	/>
				<field column="ADD_ATT"		name="ADD_AT"/>
				<field column="MODI_DD"		name="MODI_AT"	/>
				<field column="SALARY"			name="SALARY"/>				
    </entity>    
</document>
</dataConfig>


这样在客户端取得数据显示的时候
    p.setStamp((Date)doc.getFieldValue("ADD_AT")); //p是vo对象
    //在jsp页面中显示
    <fmt:formatDate value="${p.stamp}" pattern="yyyy-MM-dd HH:mm:ss" />


关于deltaimport的配置:
deltaImportQuery="SELECT CP_ID,P_NAME,CATE_TITLE,COMPANY_NAME,DESCRIPTION,EDU_LEVEL,TITLE_LEVEL,DAN_WEI_JJ,CAST(ADD_AT AS TIMESTAMP) AS ADD_ATT,
 					CAST(MODI_AT AS TIMESTAMP) AS MODI_DD,SALARY FROM GQH_POSITION_FULL_VIEW WHERE to_char(ADD_AT,'YYYY-MM-DD HH24:MI:SS') &gt; '${dataimporter.last_index_time}' 
 					 OR to_char(MODI_AT,'YYYY-MM-DD HH24:MI:SS') &gt; '${dataimporter.last_index_time}'"
            deltaQuery="SELECT CP_ID,P_NAME,CATE_TITLE,COMPANY_NAME,DESCRIPTION,EDU_LEVEL,TITLE_LEVEL,DAN_WEI_JJ,CAST(ADD_AT AS TIMESTAMP) AS ADD_ATT,
 					CAST(MODI_AT AS TIMESTAMP) AS MODI_DD,SALARY FROM GQH_POSITION_FULL_VIEW WHERE to_char(ADD_AT,'YYYY-MM-DD HH24:MI:SS') &gt; '${dataimporter.last_index_time}' 
 					 OR to_char(MODI_AT,'YYYY-MM-DD HH24:MI:SS') &gt; '${dataimporter.last_index_time}'"
分享到:
评论
1 楼 a6821122 2016-08-29  
在data-config.xml 里的javascript 不起作用是怎么回事呀?

相关推荐

    solr5.3.1 导入mysql数据

    1. **字段类型(Field Types)**: 在 Solr 中,每个字段都有一个特定的类型,例如 `text_general` 用于处理全文文本,`int` 处理整型数据,`date` 处理日期时间等。在 Schema.xml 中,我们需定义这些字段类型。 2. ...

    solr6 增量导入demo

    在Solr6中,增量导入(Incremental Indexing)是一项重要的功能,它允许系统仅更新自上次导入以来发生变化的数据,从而提高了数据处理的效率并降低了资源消耗。本教程将深入探讨Solr6的增量导入及其应用。 一、Solr...

    Solr数据库连接[SQL,Oracle]

    4. 启动数据导入过程,将Oracle数据导入到Solr索引。 在配置过程中,可能会遇到一些常见问题,例如: - 驱动类找不到:确保JDBC驱动已正确放入`lib`目录,并在配置文件中指定了正确的驱动类名。 - 连接失败:检查...

    solr7.4数据库导入Demo(mysql数据库)

    你需要先导入这些数据库脚本,然后按照上述步骤配置Solr的数据导入,这样你的Solr实例就能处理这些数据库中的数据了。 总的来说,这个Demo涵盖了Solr 7.4与MySQL的集成、数据导入和IK分词器的使用,帮助你搭建一个...

    solr安装数据源导入配置步骤

    安装配置solr步骤,包含oracle数据源导入数据配置,以及一些可能遇到的坑

    solr定时导入jar

    solr,数据定时导入,全量导入,增量导入,支持基础BASIC用户名密码安全验证,jar反编译后可直接自己修改,依赖jar包都在pom.xml文件中

    solr自动导入数据jar

    实现从数据库到solr的全量数据导入及增量数据导入jar包

    solr导入 IK分词

    三、导入数据并搜索 1. 导入数据 你可以使用Solr的`post.jar`工具或SolrJ库将包含中文内容的数据导入到索引中。确保你的文档字段映射到使用IK分词器的字段。 2. 搜索 现在,你可以通过Solr的查询接口进行搜索。由于...

    使用lucenesolr搭建Oracle数据库全文搜索服务.docx

    为了实现从Oracle数据库导入数据至Solr进行全文搜索,需要完成以下步骤: 1. **配置数据源**: - 打开`db/conf/db-data-config.xml`,配置Oracle数据库的连接信息,例如: ```xml &lt;dataSource driver="oracle....

    solr 数据迁移工具

    使用多线程方式 通过solrj 接口向solr新增索引信息

    solr导入数据必备jar包

    包含 : cloud-mysql-connector-java-5.1.7-bin.jar solr-dataimporthandler-6.0.1.jar solr-dataimporthandler-extras-6.0.1.jar

    solr增量导入更新索引包

    增量导入更新索引包是Solr中的一项重要功能,它允许系统仅处理自上次完整索引以来发生改变的数据,从而大大提升了效率并降低了资源消耗。下面将详细阐述Solr增量更新的相关知识点。 1. **Solr的索引机制** Solr...

    solr-8.2.0.rar

    Solr 8.2.0整合MySQL的过程主要包括安装部署、配置数据源、创建Core、设置数据映射、导入数据以及查询测试。这个过程能够让你的数据库中的数据具备强大的全文检索和分析能力,提高数据的可搜索性和用户体验。在实际...

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    为了保持索引与源数据的一致性,Solr引入了DIH,这是一个内建的机制,用于从关系数据库、XML文件等外部数据源导入数据,并将其转化为Solr可以处理的索引格式。 数据导入调度器(Data Import Scheduler)是DIH的一个...

    solr测试数据,数据文件

    solr测试数据,数据文件

    solr安装部署文档

    Solr 可以通过 DataImportHandler 从 Oracle 数据库中导入数据,并创建索引。下面是具体的步骤: 1. 将 dist 文件夹下的 solr-dataimporthandler-5.5.5.jar,solr-dataimporthandler-extras-5.5.5.jar 和对应的 ...

    基于Solr与Oracle的农村土地承包经营权确权成果空间数据库设计与实现.pdf

    通过与Oracle配合,Solr主要负责快速的查询服务,而Oracle则负责数据的稳定存储和复杂事务处理。 3. **ArcEngine开发的数据库管理系统**:基于ArcEngine,开发了一个数据库管理系统,ArcEngine是一款强大的GIS开发...

    solr配置中文解析器和将数据导入solr索引库时所需的jar包

    Solr,全称为Apache Solr,是一...正确地配置解析器和管理导入数据所需的jar包,可以确保Solr能有效地处理和索引中文数据,从而提供高效的搜索服务。在实际应用中,可能还需要根据业务需求进行更多的定制化配置和优化。

Global site tag (gtag.js) - Google Analytics