database - 在 solr 中执行增量导入时的时间戳兼容性

标签 database solr dataimporthandler solr4

我是 solr 新手。我已成功索引 oracle 10g xe 数据库。我正在尝试对其执行增量导入。 增量查询需要将表的 last_modified 列与 ${dih.last_index_time} 进行比较。 但是在我的应用程序中我没有这样的专栏。另外,我无法添加此列。因此,我使用“scn_to_timestamp(ora_rowscn)”来提供所需时间戳的值。此查询返回时间戳类型的值,格式为 24-JUL-13 12.42.32.000000000 PMdih.last_index_time 的格式为 2013-07- 24 12:18:03。因此,我将 dih.last_index_time 的格式更改为 to_timestamp('${dih.last_index_time}', 'YYYY/MM/DD HH:MI:SS').

我的数据配置看起来像这样 -

<dataConfig>
<dataSource type="JdbcDataSource" driver="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@XXX.XXX.XX.XX:XXXX:xe" user="XXXXXXXX" password="XXXXXXX" /> 
<document name="product_info">
<entity name="PRODUCT" pk="PID" query="SELECT * FROM PRODUCT" deltaImportQuery="SELECT * FROM PRODUCT WHERE PID=${dih.delta.id}" deltaQuery="SELECT PID FROM PRODUCT WHERE scn_to_timestamp(ora_rowscn) > to_timestamp('${dih.last_index_time}', 'YYYY/MM/DD HH:MI:SS')">
  <field column="PID" name="id" /> 
  <field column="PNAME" name="itemName" /> 
  <field column="INITQTY" name="itemQuantity" />
  <field column="REMQTY" name="remQuantity" />
  <field column="PRICE" name="itemPrice" /> 
  <field column="SPECIFICATION" name="specifications" /> 
  <entity name="SUB_CATEGORY" query="SELECT * FROM SUB_CATEGORY WHERE SCID=${PRODUCT.SCID}">
    <field column="SUBCATNAME" name="brand" /> 
    <entity name="CATEGORY" query="SELECT CNAME FROM CATEGORY WHERE CID=${SUB_CATEGORY.CID}">
      <field column="CNAME" name="itemCategory" /> 
    </entity>
  </entity>
</entity>
</document>
</dataConfig>

但是,这不起作用,我收到以下错误 -

Unable to execute query: SELECT * FROM PRODUCT WHERE PID= Processing Document # 1
Caused by: java.sql.SQLException: ORA-00936: missing expression

请帮帮我!!!

最佳答案

我遇到了类似的问题,并且在 *to_date* 方面取得了更大的成功。但是再看看这个,看起来也许您只需要在 delatImportQuery 中引用您的增量 ID:

deltaImportQuery="SELECT * FROM PRODUCT WHERE PID='${dih.delta.id}'"

关于database - 在 solr 中执行增量导入时的时间戳兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830323/

相关文章:

php - 奇怪的字符,如 : � are appearing when using mcrypt_decrypt on CentOS

mysql - 使用数据库 : E-commerce website 时的最佳实践

mySQL - 使用三个表中的数据和列创建新表

没有 Oracle 客户端的 Python Oracle DB Connect

ruby-on-rails - 为什么我们使用诸如solr, Elasticsearch 或任何其他搜索引擎之类的搜索引擎,却却拥有诸如ransack之类的事件记录 gem

solr - 在 Solr 中创建新核心时是否需要创建 schema.xml?

mysql - 使用 solr 和 tomcat6 的数据导入问题(HTTP 状态 404)

solr - Solr 中是否有多个 data-config.xml 或不同的导入处理程序?

java - Solr DataImportHandler - Oracle 日期 - 夏令时

mysql - 当删除 mysq 查询限制时,来自 mysql 的 solr 数据导入终止