当前位置: 首页 > 面试题库 >

Solr增量导入不起作用

祖奇
2023-03-14
问题内容

我正在使用Solr 4.2。请注意,完全导入有效,但增量导入却不起作用。增量导入不会产生任何错误,但不会获取任何更改。这是数据配置文件。

<dataConfig> 
<dataSource type="JdbcDataSource" 
                   driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
                   url="jdbc:sqlserver:testsql;databaseName=test" 
                   user="dba" 
                   password="dba"/>


  <script>
    <![CDATA[
    function metadataTransformer (row) {
        var attributeName = row.get("attribute_name");
        var attributeValue = row.get("attribute_value");
        row.put(attributeName, attributeValue);

        return row;
    }
    ]]>
  </script>

<document name="PRODUCTS">

<entity name="product" query="select distinct  p.product_id as id from products p
                              inner join products_meta pm on p.product_id = pm.product_id
                              inner join meta m on pm.meta_id = m.meta_id
                              where m.meta_type_id = 11 order by id desc"

deltaImportQuery="select distinct  p.product_id as id from products p
                              inner join products_meta pm on p.product_id = pm.product_id
                              inner join meta m on pm.meta_id = m.meta_id
                              where m.meta_type_id = 11 and p.product_id='${dih.delta.product_id}'"

deltaQuery= "select distinct  product_id as id from products 
                              where updtime > '${dih.last_index_time}'">

<field column="id" name="id"/>

<entity name="attribute" query="select attribute_name,attribute_value from solr_import
                                where id =${product.id}" transformer= "script:metadataTransformer">

</entity>
</entity>

</document> 
</dataConfig>

这是我没有运气的尝试。

将p.product_id =’$ {dih.delta.product_id}更改为p.product_id =’$
{dih.delta.id}以及其他方式。将updtime>’$ {dih.last_index_time}’“的位置更改为updtime>’$
{dih.last_index_time}’的位置

请帮忙。


问题答案:

这是固定的。问题是solr box位于UTC时区。一旦将其转换为ET时区,增量导入就可以正常工作了。希望这对其他人有帮助。



 类似资料:
  • 问题内容: 我检查了一下,发现它不是内置的。所以我从这里下载了整个文件夹。我如何开始本教程: 我正在使用iPython(Jupyter),是否需要将工作目录更改为我下载的该文件夹?还是可以将其添加到目录中?如果是这样,我应该在哪里添加文件?我安装了(在OSX上),当前位置是 是否要通过类似的数据集直接访问这些文件?还是我只是应该进入目录并从那里工作?这个例子不清楚。 编辑: 这个帖子已经过时了 问

  • 这可能是个愚蠢的问题,但我无论如何也无法解决。我有一个JavaScript文件,其中包含我想要导出的各种函数。 当我调用这个方法(使用mocha)时,我得到一条错误消息“export function AddNumbers(…numbers)Unexpected token export”。该项目构建为ES6。有人知道我做错了什么吗? 最好的问候,托斯顿

  • 问题内容: 我似乎无法让绝对导入在python中工作。这是我的文件结构: foo.py: 我反而得到: 这到底是怎么回事?我觉得我缺少基本的东西。尽管这个例子很简单,但我需要绝对导入才能为实际项目工作,因此仅用相对导入替换导入是不可行的。我正在使用python 2.7.13 预先感谢您的任何见解! 问题答案: 由于未显示,因此我必须假设您正在运行,这会将脚本()的目录放在开始的位置,而实际上您希望

  • 我似乎无法让绝对导入在python中工作。以下是我的文件结构: 福。py: 我反而得到: 这到底是怎么回事?我觉得我错过了一些基本的东西。虽然这个例子很简单,但我需要绝对导入来为实际项目工作,因此仅用相对导入替换导入是不可取的。我正在使用python 2.7。13 这里列出的解决方案都没有帮助 提前感谢您的任何见解!

  • 我正在尝试与使用Stripe的Laravel出纳一起实现数量增量。我可以在创建新订阅时设置数量,如下所示: 但是,当我尝试更新数量号到现有的订阅,它不工作: 当我转到条纹的支付页面时,它仍然在1个数量上,并且没有显示那里增加的数量。我哪里错了?我应该获得令牌并在更新时再次传递令牌吗?我读了Laravel文档,并遵循它说:http://laravel.com/docs/5.1/billing#sub

  • 我是Java新手,正在努力学习。我目前陷入困境,不知道为什么无法从文件夹导入。