代码之家  ›  专栏  ›  技术社区  ›  bl4cksta

使用FacetFilters的Laravel Scout搜索?

  •  8
  • bl4cksta  · 技术社区  · 8 年前

    如你所知,使用 where() numericFilter . 我试图用字符串过滤过滤我的搜索结果。

    2 回复  |  直到 8 年前
        1
  •  19
  •   bl4cksta    8 年前

    我很高兴回答我自己的问题。首先,很难找到任何关于拉雷维尔侦察员的文件。如果要使用字符串参数筛选搜索结果。甚至很难找到答案。我逐行检查了整个图书馆。最后,结果让我感到骄傲。

    如果你想用字符串参数过滤结果,你需要设计回调函数 search() 方法并注入 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));
    });
    
        2
  •  2
  •   forsvunnet    7 年前

    $results = Product::search($q)->with(
        [
            'facets' => ['*'],
            'facetFilters' => [$facetFilters],
        ]
    )->paginate(24);
    

    https://www.algolia.com/doc/framework-integration/laravel/searching/server-side-search/