链接豆中的Hippo CMS搜索

时间:2018-09-07 17:24:19

标签: repository contains hippocms

我有一个河马豆,其中包含作为链接豆的河马列表。

  @HippoEssentialsGenerated(internalName = "example:comment")
public List<HippoBean> getComment() {
    return getLinkedBeans("comment", HippoBean.class);
}

现在,我想创建一个查询来检索这样的评论:

hstQuery = HstQueryBuilder.create(scope)
            .ofTypes(Article.class)
            .where(constraint("example:comment").contains("good job"))
            .build();

想法是检索所有文章,以使与它们相关的评论包含字符串“ good job”。到目前为止,此查询未返回任何内容。是否可以查看作为LinkedBeans关联到另一个HippoBean的HippoBeans数组的内部?如果是这样,如何实现?我看到了一些示例,这些示例允许在单个属性中搜索文本,例如:

 HstQuery hstQuery = HstQueryBuilder.create(scope)
            .ofTypes(BaseDocument.class)
            .where(constraint("title").contains("Hello World"))
            .limit(pageSize)
            .offset(pageSize * (pageNum - 1))
            .orderByDescending("mynamespace:date")
            .build();

在这种情况下,查询仅返回那些文档,以便其标题包含字符串“ Hello World”

2 个答案:

答案 0 :(得分:1)

example:comment不是注释,而是对注释的引用。因此,此查询在uuid中查找字符串“ good job”。不幸的是,您无法以所需的方式创建此查询。每个文章,您将需要第二个查询来查找此信息。或查询所有评论中的“好工作”,并检索与它们相关的文章。无论哪种方式,它都会很昂贵。

答案 1 :(得分:1)

这将返回所有包含文章文档链接的评论文档:

ContentBeanUtils.createIncomingBeansQuery(article,scope,"example:comment/@hippo:docbase,Comment.class,false)

第一个参数是文章类的特定实例,该实例类已由多个注释文档链接。

有关详细说明,请参见: https://www.onehippo.org/library/concepts/search/search-all-hippodocument-beans-that-have-a-link-to-a-hippodocument-you-have.html