如何通过弹性搜索查询“道具”表?

时间:2019-08-22 08:31:58

标签: hybris

在我的代码中,我具有Hybris中某些页面组件的主键,我必须找到它们的所有属性(如标题,内容等属性)

我可以使用SQL查询来查询“ Props”表,但是由于不建议直接查询数据库,因此我不确定如何在“弹性搜索”中找到对应的内容。

还有其他更简单的方法来检索仅具有主键的组件的所有属性吗?

1 个答案:

答案 0 :(得分:1)

您可以做的是使用其主键检索所需的组件。示例:

select {pk} from {SimpleCMSComponent} where {pk} ='8796093056060'

通常在DAO类中使用灵活的搜索(平台示例: DefaultProductDao )。

当灵活搜索服务运行此灵活搜索时,您将获得一个ComponentModel。请在下面看到我刚刚创建的groovy脚本,以举例说明如何打印基于其PK检索到的组件的ID(以同样的方式,通过使用吸气剂,您可以获得 title 内容,等等。):

import de.hybris.platform.cms2.model.contents.components.SimpleCMSComponentModel;


def flexibleSearchService = spring.getBean("flexibleSearchService");

SimpleCMSComponentModel simpleCmsComponent = flexibleSearchService.search("select {pk} from {SimpleCMSComponent} where {pk} ='8796093056060'").getResult().get(0);
println(simpleCmsComponent.getUid())

我相信,对于CMS组件,最佳做法是使用其ID而不是PK。