我是 solr search 和 DIH 的新手。我做了一些研究,但还没有弄清楚。那么 delta-import 如何更新solr索引,我的意思是是它始终自动监听所有数据库或在5分钟内频繁检查(?),还是我们手动激活了 delta-import? 检查是否有任何更新或添加的新内容。
答案 0 :(得分:1)
关于“增量导入”的唯一事情是,它假定大多数内容都已被索引,因此正在运行特定查询以确定自上次运行导入以来发生了什么变化,并检测出哪些变化文档已从数据库中删除。您必须编写查询(并在后台支持这些查询的数据结构),才能让Solr为您确定这些事情。
没有监听更改,也没有每五分钟(或另一个间隔)运行自动导入。触发增量导入的方式与触发完全导入的方式相同:
http://localhost:8983/solr/dih/dataimport?command=delta-import
但是可以运行常规查询the delta
versions of the queries run instead。
<entity name="feature"
query="select DESCRIPTION from FEATURE where ITEM_ID='${item.ID}'"
deltaQuery="select ITEM_ID from FEATURE where last_modified > '${dataimporter.last_index_time}'"
parentDeltaQuery="select ID from item where ID=${feature.ITEM_ID}">
<field name="features" column="DESCRIPTION" />
</entity>
如果您今天正在构建一个应用程序,我强烈建议您在应用程序中更改文档时直接将这些文档直接提交给Solr,而不要使用数据导入处理程序,因为这样可以更好地扩展规模,更快的更新,使您可以完全控制更新过程。