现在的电商网站出售各种类别的产品,如食品、个人护理、电子产品等等。在这些网站中,访问者希望能够通过特定的类别进行搜索。这可以通过添加一个新的功能来实现:按部门或按类别的搜索。在这篇博客中,我们将解释如何使用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前端“按类别搜索”的样子:
借助此功能,您可以提高网站搜索效果并减少搜索优化的需求,最终会对您的电子商务转化率产生直接影响。