我的Solr数据源是一个SQL数据库,其中主键是复合的(即它是两个字段).
这对我的主要DIH来说很好query,我只是连接字段,这就成了我的Solr主键.但是,从文档中我不清楚如何编写delta-import查询来支持这一点.
文档建议我需要两个查询 - 一个用于查找已更改行的主键,另一个用于查找与每个键对应的单个文档.但是没有示例显示复合键.
理想情况下,我根本不需要这两个单独的查询,如果将这两个查询简单地组合在一起,那么它将减少数据库上的负载,以便query和之间的唯一区别deltaQuery是WHERE基于过滤器的子句last_changed.
所以,如果我的主要query是:
SELECT key1 || key2 as pk FROM table
Run Code Online (Sandbox Code Playgroud)
相关deltaQuery(和/或deltaImportQuery)的外观是什么样的?
我尝试添加该WHERE子句,但在查询运行后,我得到了一个关于缺失的警告deltaImportQuery,然后是一个空指针异常.
Yur*_*ish -1
有两个 deltaImport 查询。第一个(deltaQuery)用于确定要索引的内容。例如,我们可以在其中定义我们需要索引什么ID。另一个用于根据该 id 确定数据。看看我的例子,希望对你有帮助:
<entity name="address" pk="address_id" query="SELECT * FROM address a" deltaImportQuery="SELECT * FROM address a where a.address_id > ${dataimporter.delta.id}"
deltaQuery="select address_id as id from address where address_id=101010">
Run Code Online (Sandbox Code Playgroud)
deltaImportQuery 的重要部分是 ${dataimporter.delta.id}。这就是我们将 id 从 deltaQuery 设置为 deltaImportQuery 的方法。
| 归档时间: |
|
| 查看次数: |
3295 次 |
| 最近记录: |