如何创建查询以在 Magnolia 的 2 个工作区进行搜索?

Posted

技术标签:

【中文标题】如何创建查询以在 Magnolia 的 2 个工作区进行搜索?【英文标题】:How to create a Query to search at 2 workspaces in Magnolia? 【发布时间】:2018-01-31 12:50:44 【问题描述】:

我正在尝试创建一个查询,以便搜索已在 Magnolia 中发布但位于尚未发布的页面内的资产。

我为那些已发布的资产创建了一个查询,以便使用 JRC-SQL2 在“大坝”存储库中进行搜索:

select p.* 
  from [mgnl:asset] as p 
 where (ISDESCENDANTNODE('/demo-features/tests') 
        or ISSAMENODE('/demo-features/tests')) 
   and (p.[mgnl:activationStatus] <> '')

但是当我尝试添加任何类型的额外条件以在“网站”存储库中搜索以检查资产是否存在于那里时,我无法创建一个有效的条件。

我尝试使用 UNION、IN、INNER JOIN,但因为我寻找的信息位于另一个存储库 Magnolia 中,所以我无法访问它。

谁能告诉我一种同时从 2 个存储库中获取信息的方法?

【问题讨论】:

【参考方案1】:

每个工作区和每个存储库都有自己的索引。因此,您不能在单个查询中组合对它们的搜索。

【讨论】:

感谢您的快速回答,如果无法创建查询以同时在两个不同的地方进行搜索,资产内部是否有任何节点或属性可以让我知道它们是否被无需获取其“ID”并在“网站”存储库中搜索的页面? 有一个内容依赖模块可以让你做到这一点。 documentation.magnolia-cms.com/display/DOCS56/… 感谢您抽出宝贵时间,最后我无法创建依赖项以通过存储库形成连接,但我的一位同事认为这是创建所需连接的正确路径我将来我们将不得不重新讨论这个问题,但无论如何感谢您的提示和时间。

以上是关于如何创建查询以在 Magnolia 的 2 个工作区进行搜索?的主要内容,如果未能解决你的问题,请参考以下文章

如何调整LISTAGG以在选择查询中支持超过4000个字符?

构建 SQL 查询以在 C# 中的 2 个 DateTimePickers 的值之间进行搜索

maven 2 和 5.4.5:info.magnolia.test.RepositoryTestCase 不再工作

Magnolia CMS 公共和会话范围 Bean

Magnolia 5.5.5 Magnolia 中的索引配置

如何创建队列系统以在zend框架2.2中发送电子邮件。