0

在不使用 solr 或弹性搜索的情况下为具有大型 MySQL 数据库(数百万条记录)的 xcart 创建即时搜索模块?

我们有一个 x-cart 4.6.6 安装,我们希望启用即时产品名称、描述、sku、品牌、型号、年份和一些其他相关信息。

问题是我们的数据库很大(超过 100 万种产品),并且由于它使用 % 通配符开始搜索,因此最多需要 6 秒才能接收结果。谁能给我有关如何改进此选项或其他选项的指导。有 3 个预建的 solr 插件,但价格昂贵,而且网站很阴暗,所以我确信支持也是如此。可以使用哪些方法来提高速度,因为它对转换率至关重要。请让我知道您诊断问题和解决方案所需的任何其他信息。谢谢,安东尼。

为了进一步说明,我们有一个左上角的搜索框,它使用 JS 和 PHP 连接到 mysql 并拉取结果。我们的开发人员已经通知我们,因为它使用通配符进行定义较少的搜索(如 2 个字母搜索)会减慢速度。

4

1 回答 1

1

您可能已经注意到,MySQL 对全文搜索的支持非常有限。不仅在速度方面。MySQL FULLTEXT 索引和搜索功能缺少许多现在对于任何成熟的搜索引擎来说都是必须的重要功能:形态学、相关性调整、分面搜索、同义词等等。

由于您要求的不仅仅是全文搜索,而是产品搜索,因此促销、拼写更正和查询建议等功能也可能是可取的。

我意识到您在您的问题中表示您希望在不使用 Solr 或 Elastic Search 的情况下实现您的目标,但我认为构建一个仅用 PHP + MySQL 编写的快速且功能丰富的产品搜索引擎实际上是不可能的。

我是CloudSearch的创建者- X-Cart 商店的产品搜索引擎。在其几年的发展和演变过程中,我们提出了一种云架构,其中包含一组处理来自 X-Cart 商店的搜索请求的同类服务器。这种架构使我们能够为成千上万的客户提供服务,其中一些客户拥有多达 100 万种产品。然而,我们的平均搜索请求处理时间约为 25 毫秒。

如果您需要对 X-Cart 商店进行真正快速和准确的产品搜索,我建议您考虑从强大的全文搜索系统之一开始:Solr、Elastic Search 或 Spinx。Solr 和 Elastic Search 是我发现功能最完整的。

另一种选择是使用现有的集成解决方案之一。即使使用商业服务,这也比在 Solr 或 Sphinx 或其他开源搜索引擎之上构建自己的产品搜索引擎要便宜得多。

于 2015-02-19T18:47:04.557 回答