首页 > 解决方案 > 如何在 Opencart 中使搜索查询更具体?如何从 Opencart 中的产品搜索中排除关键字?

问题描述


我有一家多品类商店:https
://www.gadgets-house.com 我销售的电池包括 AA 电池和 AAA 电池,它们的功能差别很大。
现在,问题是,每当我尝试搜索 AA 电池时,搜索结果也包括 AAA 电池。当“AA 电池”与“AAA 电池关键字”相交时,它向我展示了一个混合搜索。
谁能帮我只找到特定的关键字触发产品?或者有什么方法可以在特定产品列表中标记否定关键字?
Opencart 版本 2.3.0.2
谢谢。

标签: phpsearchopencartopencart2.xopencart2.3

解决方案


是的 100% 可能:

我是几个月前完成的任务,并在我的现场网站上进行了测试。

在此处输入图像描述

在此处输入图像描述

我现在有 2 个关键字

  1. AA鞋
  2. AAA 鞋

在此处输入图像描述

第 1 步:转到目录/模型/目录/product.php

寻找

$implode[] = "pd.name LIKE '%" . $this->db->escape($word) . "%'";

用。。。来代替

$implode[] = "pd.name ='" . $this->db->escape($word) . "'";

寻找

$sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";

用。。。来代替

$sql .= " OR pd.description  ='" . $this->db->escape($data['filter_name']) . "'";

第 2 步:转到目录/model/journal3/filter.php

寻找

$implode[] = " pd.name LIKE '%" . $this->db->escape($word) . "%'";

用。。。来代替

$implode[] = " pd.name = '" . $this->db->escape($word) . "'";

寻找

$sql .= " OR pd.description LIKE '%" . $this->db->escape($filter_data['filter_name']) . "%'";

用。。。来代替

$sql .= " OR pd.description = '" . $this->db->escape($filter_data['filter_name']) . "'";

寻找

$implode[] = "pd.tag LIKE '%" . $this->db->escape($word) . "%'";

用。。。来代替

$implode[] = "pd.tag = '" . $this->db->escape($word) . "'";

寻找

$sql .= " pd.tag LIKE '%" . $this->db->escape($tag) . "%'";

用。。。来代替

$sql .= " pd.tag = '" . $this->db->escape($tag) . "'";

寻找

$sql .= " OR pd.tag LIKE '%" . $this->db->escape($tag) . "%'";

用。。。来代替

$sql .= " OR pd.tag = '" . $this->db->escape($tag) . "'";

推荐阅读