参考文章:
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') > '${dataimporter.last_index_time}'
OR to_char(MODI_AT,'YYYY-MM-DD HH24:MI:SS') > '${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') > '${dataimporter.last_index_time}'
OR to_char(MODI_AT,'YYYY-MM-DD HH24:MI:SS') > '${dataimporter.last_index_time}'"
分享到:
相关推荐
NULL 博文链接:https://fengqingyuntan.iteye.com/blog/2254145
简单介绍整合tomcat+solr,包含文件拷贝,索引文件配置,系统文件配置;
安装配置solr步骤,包含oracle数据源导入数据配置,以及一些可能遇到的坑
solr导入Ik分词专用。
solr,数据定时导入,全量导入,增量导入,支持基础BASIC用户名密码安全验证,jar反编译后可直接自己修改,依赖jar包都在pom.xml文件中
实现从数据库到solr的全量数据导入及增量数据导入jar包
solr7.4数据库导入,使用mysql数据库,内含solr7.4导入数据库Demo+mysql库表,外加使用IK分词器。
包含 : cloud-mysql-connector-java-5.1.7-bin.jar solr-dataimporthandler-6.0.1.jar solr-dataimporthandler-extras-6.0.1.jar
solr可以实现定时导入,增量导入,全部的导入;本人亲测可用
Solr数据库连接[SQL,Oracle]SQL Service及Oracle连接Jar报
基于solr5.5.5的安装部署文档,包含solr导入Oracle数据库
使用lucenesolr搭建Oracle数据库全文搜索服务.docx
solr测试数据,数据文件
solr整合mysql的实战,包括配置MySql连接、配置core的属性,建立数据库映射、导入数据、测试solr查询
基于Solr与Oracle的农村土地承包经营权确权成果空间数据库设计与实现.pdf
solr增量导入更新索引包
solrcloud5_多数据源导入成功的例子
solr配置中文解析器和将数据导入solr索引库时所需的jar包
使用多线程方式 通过solrj 接口向solr新增索引信息
Dubbo+Solr+RabbitMQ实现Solr数据同步