【发布时间】:2021-10-22 06:03:19
【问题描述】:
我有一个包含三个字段的数据库表“电影”:id、title 和 user_id。登录后,用户可以使用自定义title 创建新电影。 user_id 会自动设置为当前登录的用户。
现在在另一个页面上(同样在同一个登录之后),用户可以将他们自己创建的所有电影作为一个列表查看。他们还可以使用可以开始输入的文本字段过滤它们,并且列表将被更新。
为了使搜索尽可能快,我用meilisearch 索引了所有电影。但目前每个用户也可以看到其他用户的电影。是否可以确保每个用户只能看到自己制作的电影?
我尝试使用 meilisearch 的 php 包和自定义路由来解决它,我可以在其中检查用户访问,然后返回结果:
$results = $searchService->rawSearch(Channel::class, '', [
'facetFilters' => ['user_id:XXX'],
]);
// Return results to frontend as json
return $results;
但是由于性能损失,我想直接在前端使用meilisearch,而不是通过后端。那么是否可以在前端进行相同的搜索,而其他用户可以通过轻松更改搜索查询中的用户 ID 来搜索其他用户的电影?是否可以保护搜索结果或者我应该使用其他搜索引擎?如果是,您能推荐另一个开源搜索引擎吗?
【问题讨论】:
标签: php full-text-search meilisearch