我有一个在线商店应用程序和一个包含大约 1000 个项目的数据库。
ITEM{
categories / up to 5 out of 60
types / up to 2 out of 10
styles / up to 2 out of 10
rating / 0-5
}
现在我不会创建具有预定义条件的逐项比较:
- 至少一种常见类别+= 25 分
- 至少一种常见类型+= 25p。
- 如果第一项没有样式+= 0p。- 如果没有共同
的风格-= 10p。- 对于评分差异的每个点 -= 5p。
并将结果存储在表格中。作为item_to_item_similarity.score
.
现在我用一个漂亮而闪亮的 PHP 函数和类做了整个事情。
还有一个计算和更新所有关系的函数。
在有 20 个项目的测试中.. 一切顺利。但是当将测试数据增加到 1000 项时 .. 导致 1000x1000 关系服务器开始抱怨 script_time_out .. 并且内存不足:)
索引、事务和预加载一些数据.. 帮助了我一半。
有没有更聪明的方法来比较和评估这类数据?
我正在考虑将相关的类别、样式等表示
为一组 ID,可能在一些二进制掩码中......这样它们就可以很容易地进行比较(即使在 SQL 中?)而无需创建类和循环槽数百万次的数组。