繁体   English   中英

使用FacetFilters进行Laravel Scout搜索?

[英]Laravel Scout Search with FacetFilters?

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

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

我很乐意回答我自己的问题。 首先,很难找到任何有关Laravel Scout的文档。 如果要使用字符串参数过滤搜索结果。 即使很难找到答案也是如此。 我逐行检查了整个图书馆。最后,结果让我感到自豪。

如果你想与过滤字符串参数你的结果,你需要回调函数设计到您的search()方法和there.Simply注入你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));
});

根据algolia文档,您可以修改搜索参数,如下所示:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM