mysql - Rails : A way to check for duplicate item in DB? 联盟数据源

标签 mysql ruby-on-rails matching similarity affiliate

我有关于联属网络营销数据源的问题。

例如来自亚马逊或其他电子商店合作伙伴。我正在尝试导入他们的产品数据,但希望避免重复(如果两家商店销售相同的产品)。

例如亚马逊:产品标题:iPhone 5 16GB 黑色

另一家商店使用产品标题:iPhone 5 16GB

它们应该被列为一种产品,现在假设我有 10 家商店销售 iPhone 5。

当然它们还有更多的参数。我仍然需要一种算法来防止这种情况发生。就像产品参数的相似度匹配算法。

有谁有这方面的经验并可以告诉我,对于这种情况可以建议哪种算法?

可以在此处找到详细的参数列表GET ProductsDocumentation WebApi

非常感谢!

可以通过EAN号码来完成,但是如果没有提供这个号码怎么办。

最佳答案

在开发算法之前,您需要定义业务规则。如果您的情况是除标题之外的所有属性都匹配,那么您可以尝试对标题进行子字符串(一个是另一个的一部分)匹配或模糊匹配。

我们使用模糊字符串匹配 gem 来查找重复的公司。

假设差异仅存在于标题上,您可以通过分析标题部分来为算法注入(inject)更多智能。在您的示例中,标题部分可以是型号、版本、容量和颜色。对于这个例子:

 required_attributes = [model, version, capacity]
 optional_attributes = [color]

并定义每个产品类别的属性。将此与模糊匹配相结合,即使存在拼写错误,您也应该能够获得良好的匹配,并且以下内容应该匹配:

 iPhone 5 16GB Black
 iPhone 5 16GB
 iPone 5 16GB White

关于mysql - Rails : A way to check for duplicate item in DB? 联盟数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067647/

相关文章:

javascript 精确匹配字符串

java - 如何匹配两个文档之间的一个单词或2,3,4,5个连续单词?

mysql - MySQL 查询中 SELECT 语句后的高级参数

android - 如何在android应用程序中的php mysql服务器中获取和上传数据?

ruby-on-rails - Rails - 出于测试目的实现可选片段缓存的最佳方法

ruby-on-rails - Ruby:如何向调用的数组中的每个子数组元素添加特定键并为其分配特定值?

ruby-on-rails - 如何禁用 rail 2.3.11 中的弃用日志记录?

Java重复模式匹配(三)

mysql - 在sql中使用循环插入

PHP 陷入困境。错误404