1

我正在尝试将数据从 Document DB 导入到 solr-5.4.1。完全导入正确执行,但增量导入不起作用。当我执行增量导入时没有任何反应

在此处输入图像描述

这是当前的增量配置

deltaQuery="{'lastUpdatedDate':{$exists:true},'lastUpdatedDate':{$gt: Date('${dih.last_index_time}')}}"
            deltaImportQuery="{'_id':'${dih.delta._id}'}"> 

整个 db-data-config.xml

<dataConfig>
   <propertyWriter dateFormat="yyyy-MM-dd'T'HH:mm:ss.SSSXXX" type="SimplePropertiesWriter" filename="dataimport.properties"/>

   <document name="tvTitleSearch">
        <entity name="tvTitleSearch"
            processor="MongoEntityProcessor"
            query=""
            collection="tvTitleSearch" 
            datasource="MyMongo"
            transformer="MongoMapperTransformer"
            deltaQuery="{'lastUpdatedDate':{$exists:true},'lastUpdatedDate':{$gt: Date('${dih.last_index_time}')}}"
            deltaImportQuery="{'_id':'${dih.delta._id}'}"> 

                       <field name="id" column="_id" indexed="true" type="uuid" stored="true" mongoField="_id"/>
                      <field column="lastUpdatedDate" sourceColName="lastUpdatedDate" dateTimeFormat="yyyy-MM-dd'T'HH:mm:ss.SSSXXX" locale="en"/>

         </entity>
    </document>

</dataConfig>

托管模式文件中的示例

<field type="date" name="modifiedDate"  indexed="true" stored="true"/>
<field type="date" name="lastUpdatedDate"  indexed="true" stored="true"/>

DocumentDB 中存储的值:

lastUpdatedDate:2019-11-24T11:43:46.045+00:00

我尝试遵循存储在 DocumentDB 中的日期时间格式,但它仍然不起作用,而且,我尝试了这里提出的其他类似问题的建议,但没有运气。我在增量查询中尝试了以下片段

{lastUpdatedDate : {$gt: ISODate('${dih.last_index_time}')}} , but I got JSON Prasing Excpetion

但低于异常

java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: com.mongodb.util.JSONParseException: 
{'lastUpdatedDate':{$exists:true},'lastUpdatedDate':{$gt: ISODate('2019-11-20T13:14:30.576-08:00')}}

我也尝试了以下配置

deltaQuery="{'lastUpdatedDate':{$exists:true},'lastUpdatedDate':{$gt: 
{$date:'${dih.last_index_time}'}}}"

有人可以帮助我或提供任何建议来触发增量查询

4

1 回答 1

1

使用 deltaQuery 的正确方法是

deltaQuery="{'lastUpdatedDate':{$exists:true},'lastUpdatedDate':{$gt: {$date:'2020-03-13T08:44:06.959Z'}}}"

正如你在这里看到的

但是,SOLR 将使用${dih.last_index_time}默认格式为2020-03-13 08:44:06. 您需要通过在<dateConfig>元素中添加类似以下设置的内容来更改格式。

<propertyWriter dateFormat="yyyy-MM-dd'T'HH:mm:ss.SSSXXX" type="SimplePropertiesWriter" filename="my_dih.properties" locale="en-US"  />
于 2020-03-13T10:12:32.803 回答