首页 > 解决方案 > search_api - 访客页面和内部页面

问题描述

有人提示如何在 Drupal 8.8 站点上进行两种不同的搜索吗?

这意味着,如果客人使用搜索,则结果中应仅列出 page 和 article 类型的页面。如果经过身份验证的用户使用搜索,则任何类型的所有页面都应在结果中列出。

在search_api的模块描述中可以看到:

一般来说,搜索 API 不提供任何类型的访问限制(因为这不能在通用级别上完成)。因此,您有责任注意仅对可访问的项目进行索引或显示结果(例如,通过使用适当的过滤器)。

我理解这一点的方式是,在索引时可以排除内容,但在呈现时不能。

标签: drupaldrupal-8drupal-modules

解决方案


您可以创建 2 个搜索 API 视图,并使用过滤器授予每个对相关角色或权限的访问权限,以限制匿名用户视图中的节点类型。如果唯一的区别是对节点类型的访问,那么您可以只为两个视图使用一个搜索 API 索引。


推荐阅读