现在的电商网站出售各种类别的产品,如食品、个人护理、电子产品等等。在这些网站中,访问者希望能够通过特定的类别进行搜索。这可以通过添加一个新的功能来实现:按部门或按类别的搜索。在这篇博客中,我们将解释如何使用SoR搜索引擎来实现这个功能。

假设您已在电子商务网站上使用Solr搜索服务器,则应首先检查Solr索引中是否存在category_ids字段。Category_id应该存在于Solr索引中,以便能够按category_id进行过滤

要检查该字段是否存在,请调用此URL:http://localhost:8983/solr/collection1/select?q=*%3A*&wt=json&indent=true

您可以在下面的响应中看到category_ids

字段category_ids应在Solr schema.xml中声明,如以下示例所示:

    <field name="category_ids"  type="int"  indexed="true" multiValued="true"/>

Category_ids字段是多值和索引的,可以包含更多值,产品可以分配给更多类别。

如果满足这些条件,则仅应修改Magento侧以发送具有搜索短语的适当类别过滤器。如果您使用Solarium客户端,这很容易。

$client = new Solarium\Client($config);
 
// get a select query instance
$query = $client->createSelect();
$query->setQuery('Teflon');
$query->setFields(array('id','name','price'));
 
// create a filterquery by category id 3887
$fq = $query->createFilterQuery('category_ids')->setQuery('category_ids:3887');

如果您有兴趣了解有关 Solarium concepts的更多信息,请单击此处

最后,对Solr的查询应如下所示:
http://localhost:8983/solr/collection1/magento_en?q=Teflon&fq=category_ids:3887

q参数是搜索词“Teflon” 
fq参数按类别ID 3887过滤(更多关于Solr常用参数

 

结果

这就是Magento前端“按类别搜索”的样子:

借助此功能,您可以提高网站搜索效果并减少搜索优化的需求,最终会对您的电子商务转化率产生直接影响。