Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 比较/区分多个(>百万)阵列_Php_Mysql - Fatal编程技术网

Php 比较/区分多个(>百万)阵列

Php 比较/区分多个(>百万)阵列,php,mysql,Php,Mysql,我不确定这是否可能;但我在MySQL数据库中有数百万个列表,我想开发一个系统,从中获取一个列表;并将其与数据库中的所有其他列表进行比较,然后返回: 一,。与主列表非常相似的列表某种程度上的%会很好 2.给定列表中的特定项目;它将返回包含在大多数其他列表中的项目列表,即根据常用选项自动完成列表 我原本以为,如果我能创建某种“松散散列”,我可以从数学上比较列表,这是可能的,但我还没能找到一个可以扩展的解决方案,因为正面处理时,这是指数型的 如有任何新想法/解决方案,将不胜感激。谢谢 您的基本MD5是

我不确定这是否可能;但我在MySQL数据库中有数百万个列表,我想开发一个系统,从中获取一个列表;并将其与数据库中的所有其他列表进行比较,然后返回:

一,。与主列表非常相似的列表某种程度上的%会很好 2.给定列表中的特定项目;它将返回包含在大多数其他列表中的项目列表,即根据常用选项自动完成列表

我原本以为,如果我能创建某种“松散散列”,我可以从数学上比较列表,这是可能的,但我还没能找到一个可以扩展的解决方案,因为正面处理时,这是指数型的


如有任何新想法/解决方案,将不胜感激。谢谢

您的基本MD5是一个有点松散的散列,php和mysql都支持,在这类事情上速度相当快。只需获取所有数据的MD5,并将其与其他数据进行比较


在PHP中执行此操作,将数据的MD5存储在数组键中,如果isset使用。

您的基本MD5是一个有点松散的散列,由PHP和mysql支持,在这类事情中速度非常快。只需获取所有数据的MD5,并将其与其他数据进行比较

在PHP中执行此操作,将数据的MD5存储在数组键中,如果设置了,则使用。

第2部分给出了列表中的特定项;它将返回包含在大多数其他列表中的项目列表,即根据常用选项自动完成列表

不太清楚,但我将其解释为:给定少数项,查找包含全部或大部分项的所有列表

一旦在列表元素上创建了一个索引(本质上类似于哈希表),这应该很容易。确切的查询将取决于您的要求、列表的长度是否是定义规范的一个因素等。

您的第2部分给出了列表中的特定项目;它将返回包含在大多数其他列表中的项目列表,即根据常用选项自动完成列表

不太清楚,但我将其解释为:给定少数项,查找包含全部或大部分项的所有列表


一旦在列表元素上创建了一个索引(本质上类似于哈希表),这应该很容易。确切的查询将取决于您的需求、列表长度是否是定义规范的一个因素等。

如果您说有数百万个列表,那么将它们全部加载到php脚本中并不是一个选项。 您可以获取要与其他列表进行比较的列表的值,然后运行类似于以下内容的SQL查询:

SELECT list_id, COUNT(value) as c FROM lists WHERE value IN (a,b,c) GROUP BY list_id 
ORDER BY c DESC

我不确定sql是否正确,但我们的想法是选择具有相同成员的列表ID,然后根据与原始列表相交的列表项的数量对输出进行排序。在这种情况下,很容易获得项目对应关系的百分比。

如果你说有数百万个列表,那么将它们全部加载到php脚本中并不是一个选项。 您可以获取要与其他列表进行比较的列表的值,然后运行类似于以下内容的SQL查询:

SELECT list_id, COUNT(value) as c FROM lists WHERE value IN (a,b,c) GROUP BY list_id 
ORDER BY c DESC

我不确定sql是否正确,但我们的想法是选择具有相同成员的列表ID,然后根据与原始列表相交的列表项的数量对输出进行排序。在这种情况下,很容易获得项目对应关系的百分比。

能否描述列表的数据模型?这些列表是否存储在单独的表中?请提供表格结构并描述关系。这听起来类似于文档比较,其中每个列表都是一个单词文档。我使用tf idf和余弦相似性得到了很好的结果。总的来说,你的问题很有趣,但如果你提供示例行和数据库结构,人们将能够为你提供更多帮助。你能描述你列表的数据模型吗?这些列表存储在不同的表中吗?请提供表格结构并描述关系。这听起来类似于文档比较,其中每个列表都是一个单词文档。我使用tf idf和余弦相似性得到了很好的结果。总的来说,您的问题很有趣,但如果您提供示例行和数据库结构,人们将能够为您提供更多帮助。Md5不能用于1相似性匹配%match 2查找子集列表。这两项似乎都是OP的主要要求。Md5不能用于1相似性匹配%2匹配查找子集列表。这两项似乎都是OP的主要要求。我担心列表中项目组的相似性。例如,Recipes table有一百万份各种食物的食谱。我有一份制作火鸡砂锅菜的材料;但我今晚不想吃砂锅菜。我希望能够找到一种方法,根据砂锅中的配料清单,让系统查看所有其他食谱并按顺序返回;按分数/百分比(如有)
所有其他配方,也有类似的成分,包括任何砂锅菜;我稍后会排除这些。我希望这更有意义。谢谢我关心的是列表中项目组的相似性。例如,Recipes table有一百万份各种食物的食谱。我有一份制作火鸡砂锅菜的材料;但我今晚不想吃砂锅菜。我希望能够找到一种方法,根据砂锅中的配料清单,让系统查看所有其他食谱并按顺序返回;按分数/百分比(如有可能)列出所有其他含有类似成分的食谱,包括任何砂锅菜;我稍后会排除这些。我希望这更有意义。谢谢