php - Laravel Scout 使用 FacetFilters 搜索?

标签 php laravel algolia laravel-scout

如您所知,在搜索方法使用 numericFilter 之后使用 where() 语句。我正在尝试使用字符串过滤来过滤我的搜索结果。

如何在搜索语句中使用 Facet Filter?

最佳答案

很高兴回答我自己的问题。首先,很难找到关于 Laravel Scout 的任何文档。如果你想用字符串参数过滤你的搜索结果。即使真的很难找到答案。我逐行检查了整个库。最后,结果让我感到自豪。

如果你想用字符串参数过滤你的结果,你需要为你的 search() 方法设计回调函数,并在那里注入(inject)你的 FacetFilters。简单地说,让我们假设你有 Posts 模型,你正在使用 Algolia 并且你有枚举类型的 category 列。您可以使用以下代码过滤您的博文搜索结果。

$post = Post::search($query, function ($algolia, $query, $options) use ($category){
    $new_options = [];
    if (!is_null($type)) {
        $new_options = ["facetFilters"=>"category_name:".$category];
    }
    return $algolia->search($query, array_merge($options,$new_options));
});

关于php - Laravel Scout 使用 FacetFilters 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285500/

相关文章:

PHP mysql_fetch_assoc() 错误

php - PDOException 找不到驱动程序 Laravel 5.4

php - 在 Eloquent 模型范围内检索请求实例

laravel - 在laravel中查找列的最大值

json - Algolia是否有一种方法可以用逗号分隔的JSON字段创建单独的细化方面

objective-c - Algolia 切面属性多个值

java - 如何检索所有方面?

php - 我如何在我从数据库中获取的 get_file_contents 中使用 if else 条件

PHP 是否可以在 while 循环中为每个 POST 表单发送唯一的值?

php - 如何通过 Laravel 中的类别显示帖子