Solr DIH delta-import与复合主键?

Aln*_*tak 6 solr dih

我的Solr数据源是一个SQL数据库,其中主键是复合的(即它是两个字段).

这对我的主要DIH来说很好query,我只是连接字段,这就成了我的Solr主键.但是,从文档中我不清楚如何编写delta-import查询来支持这一点.

文档建议我需要两个查询 - 一个用于查找已更改行的主键,另一个用于查找与每个键对应的单个文档.但是没有示例显示复合键.

理想情况下,我根本不需要这两个单独的查询,如果将这两个查询简单地组合在一起,那么它将减少数据库上的负载,以便query和之间的唯一区别deltaQueryWHERE基于过滤器的子句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 的方法。