`
zjnbshifox
  • 浏览: 312563 次
  • 性别: 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 不起作用是怎么回事呀?

相关推荐

Global site tag (gtag.js) - Google Analytics