从Solr索引中删除产品

2020-08-31 07:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


产品可能会从目录中删除,并且发生这种情况时,应该从solr索引中删除这些产品。

我无法选择这些产品的PK,因为它们不存在。

有什么办法可以实现它?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


产品可能会从目录中删除,并且发生这种情况时,应该从solr索引中删除这些产品。

我无法选择这些产品的PK,因为它们不存在。

有什么办法可以实现它?

付费偷看设置
发送
6条回答
zhangjiyang1323
1楼-- · 2020-08-31 08:02

您可以使用IndexerService方法,该方法可用于从索引类型中删除所选文档。 例如:void deleteTypeIndex(FacetSearchConfig arg0,IndexedType arg1,List arg2)抛出IndexerException;

zhangjiyang1323
2楼-- · 2020-08-31 07:55

这将不起作用。

黑丝骑士
3楼-- · 2020-08-31 08:07

您可以添加移除拦截器以拦截产品删除。

检测到删除后,st Solr删除作业将从Solr索引中删除该产品。

或者,您可以创建一个cron作业,以定期从Solr索引中获取所有文档ID,将它们与目录中的产品进行比较,然后删除孤立的文档。

CPLASF-自律
4楼-- · 2020-08-31 07:51

索引每天更新几次,我不知道确切的时间间隔。

我考虑过要存储当前在solr索引中的所有PK(或每次查询solr),并使用此信息来确定应删除哪些产品。

全索引确实可以解决问题,但是我需要检查应多久从索引中删除一次产品。

shere_lin
5楼-- · 2020-08-31 08:13

您好,您需要多长时间删除一次产品。 我的信念是您不必从基于PK的索引中删除。 您只需要进行完全重新索引。 希望这可以帮助。

zhangjiyang1323
6楼-- · 2020-08-31 08:00

嗨,

完全索引可以确保解决问题-但过程可能很漫长,因此并非在所有情况下都是最佳方法。 如果手动移除产品,Intercpetor可以很好地工作,而不是经常一个接一个地移除。 如果您有删除大量pf产品的批处理过程,则将更新发送到SOLR以逐一删除它们可能是性能问题。 您可能会考虑其他解决方案:-不要删除产品,而只是使它们不活动(使用现有产品或在产品级别上创建新字段)。 添加个性化功能将这些产品隐藏在前端应该相当容易。 然后扩展Job以便从SOLR中删除产品。 首先,它将提取适当的产品,然后在此过程结束时将其从数据库中删除。 这是一个很大的变化,因此再次不确定是否对您有效。

我的第二个想法是创建一个简单的项目,该项目将存储从系统中删除的产品的所有PK。 每次移除产品时,拦截器都会创建它们。 修改后的工作不会要求产品,而是要求这些新物品并使用它们中的PK。

一周热门 更多>