使用COM.ay.Cq.WCM.Fask.Access API的AEM内容搜索问题

使用COM.ay.Cq.WCM.Fask.Access API的AEM内容搜索问题,aem,Aem,我正在开发一个网站使用AEM 6.3使用触摸界面和视觉 我想在我们的项目中实现基于标签的搜索功能,它可以使用标签搜索整个网站,我们还想拥有你的意思是功能 为此,我使用了 com·天.cq.WCM.Funest.Stase API,它帮助我获得结果列表以及完成我所有要求的结果集。 我没有使用querybuilderapi,因为它只为我们提供了严格的结果集,并且没有实现您的意思是功能 当我们开始从匿名用户(即未登录AEM)访问站点URL时,问题就出现了。 然而,一旦我们将etc/tags权限授予匿名

我正在开发一个网站使用AEM 6.3使用触摸界面和视觉

我想在我们的项目中实现基于标签的搜索功能,它可以使用标签搜索整个网站,我们还想拥有你的意思是功能

为此,我使用了<强> com·天.cq.WCM.Funest.Stase API,它帮助我获得结果列表以及完成我所有要求的结果集。

我没有使用querybuilderapi,因为它只为我们提供了严格的结果集,并且没有实现您的意思是功能

当我们开始从匿名用户(即未登录AEM)访问站点URL时,问题就出现了。 然而,一旦我们将etc/tags权限授予匿名用户,它就会开始正常工作

但我不想给匿名用户权限

对此,合适的解决方案是什么


是否有其他/更好的方法解决此问题?

匿名用户需要
etc/tags
权限才能使用此功能。这是因为查询查看标记来计算同义词或“您的意思是什么”逻辑

但我不想给匿名用户权限

你可能担心这里的安全问题。您可以通过以下方式解决此问题:

  • 向匿名用户授予只读权限
  • 阻止dispatcher(或等效层)上的/etc/标记,以便匿名用户无法访问它

匿名用户权限仅用于使查询正确执行筛选。这并不意味着您需要通过您的网站公开/etc/tags。

因为您是通过使用筛选标记进行搜索的,所以您可以使用TagManager Api来获取带有特定标记的所有资源。 例如:RangeIterator查找(字符串基路径, 字符串[]标记ID)

你可以在这里找到更多的细节。

非常感谢您提供的解决方案。但是,除了C.Day.Cq.WCM.Pusial.SearaAPI,Search API是一种特殊的查询引擎,还有其他API,我们可以使用它,这样您就可以自己编写了,但通常是用内容标注的橡树索引定义。我建议提出一个新问题,以便更广泛的社区能够回答。
 basePath - The starting node of the search
 tagIDs - a list of tag IDs or full paths to tags