问题标签 [set-difference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在忽略文件扩展名的情况下返回两个 FileInfo 列表之间的设置差异?
我有两个IEnumerable<FileInfo>
要比较的列表:
其中 _ext1 和 _ext2 是不同的文件扩展名类型。例如:
所以list1
看起来像:
看起来list2
像:
我想在 list2 中找到 list1 中不存在的所有内容。我尝试了以下方法:
这很好,工作正常并返回(注意没有文件扩展名):
但是,我真正想要的是获取 FileInfo 的列表,而不仅仅是 FileName 字符串。我需要这个,因为我需要其他信息,例如 FullFile 路径,ext.. 所以只是文件名字符串列表无法完成这项工作。我该怎么做呢?
algorithm - 高效同步不同数据库中的两组大型值
我有一个数据库表和一个 Lucene(可能是 Solr)索引。目标是索引数据库表,每行恰好一个文档。然而:
- Lucene 索引的初始状态是未知的,可能大部分已经同步。它还可能包含不存在行的文档,之后将通过另一种机制将其删除。
- 执行重新同步的应用程序可能需要在此过程中多次重新启动。很少有状态可以在重新启动时存储(理想情况下没有),因此预先强制设置差异是行不通的。
- 不允许对 Lucene 索引进行低级访问;我可以对它运行查询,但不能。直接枚举给定字段中的术语。可以通过查询来查找键或计算范围内的键。
- 数据库中的行没有任何版本信息或 ETag。我们可以假设它们只是一列唯一键。
此处无需处理过期或需要删除的文档。我只需要确保每一行最终都有一个文档,尽可能少地浪费时间。
更新或删除过期文档由系统的一个单独部分处理,该部分可能假定仅在此重新同步机制指示完成后运行。(事实上,一个强大的更新/删除系统很容易......)
以前这个任务是通过蛮力集差异完成的,但是对于特别大的数据集会遇到困难,并且解决方案确实需要利用部分同步来支持恢复:如果应用程序总是在它之前取得一些进展重新启动它最终将同步商店。
The Difference Digest https://www.ics.uci.edu/~eppstein/pubs/EppGooUye-SIGCOMM-11.pdf看起来很有趣,但似乎仅适用于数据存储具有必要的智能来自行计算的情况。在这种情况下,只有一个应用程序在做这项工作,它只能对两个存储进行查询、插入和删除。
到目前为止,我认为这里有三种基本情况:
- 这些集合非常不同步,例如。索引为空。这应该很容易处理,只需从任一集合的最低 ID 开始,从源查询一批记录,并在目标中添加/删除差异。不幸的是,虽然这最初会很快取得进展,但由于每次重新启动后需要更长的“追赶”时间,它会变慢。
- 这些集合几乎是同步的。感觉应该有一种有效的方法来处理这个问题,也许是通过在数据集中生成一个直方图并深入到与源不“匹配”的各个桶中,但仍然有必要访问每个键并添加它是某种桶哈希。
- 这些集合有大量的细微差别,即。每个中的行数相同,但其中约 60% 的行具有不同的键。这似乎是最坏的情况,但并不是特别不可能。
有解决这个问题的既定技术吗?事实上,我们确实使用一种事务日志来记录需要添加的内容,但这只能处理正常操作,不能处理初始同步或迁移后修复。
我知道有些产品和系统可以“为我”处理这个问题,但还有其他实现问题,这意味着该系统目前必须在现有代码库中实现,尽管它可能会被更通用的解决方案取代未来。事实上,这样做的全部意义在于使当前系统成为“中途”,以便能够使用其他解决方案。
我想系统的更新/删除部分可能会被滥用来记录完整扫描的进度,通过添加占位符文档,该过程完成后会自动删除?我想避免在集合几乎同步时进行全面扫描,但是......
r - 在 R 中的列表之间查找缺失值
我有两组列表,需要将第一个列表中的每个向量与第二个列表中的相应向量进行检查,以查看缺少的内容(我只对第一个列表中不在第二个列表中的内容感兴趣) .
样本数据:
我需要取消列出和使用 setdiff(),所以我使用一个函数来做这两个:
第一组的预期结果是什么,第二组的预期结果是 5。不幸的是,这并没有拾取 x[2] 中但不在 y[2] 中的 5。相反,这是我的结果:
奇怪的是,它似乎匹配 5 到 50(也许?),因为如果我将 x[2] 中的 5 更改为 y[2] 中找不到的 3 之类的数字,我会得到预期的结果:
知道发生了什么吗?还是有更好的方法来做到这一点?
r - rm() 除特定对象外的所有内容
有人知道如何删除 R 中除一个对象之外的所有内容吗?通常,要删除我编码的所有内容:
所以我尝试了:
但它没有用。
java - Finding the difference between two int arrays
I am having trouble figuring out the algorithm that will find the differences between two integer arrays. I already have a sorting method that it will be ran through so the numbers are in ascending order.
For example:
SetX = { 1, 2, 3, 4, 5 }
SetY = { 0, 2, 4, 6 }
The return should be the numbers in SetX that does not appear in SetY.
so resultSet = { 1, 3, 5 }
Sometimes I get the correct answer if I do small arrays but if I do arrays that are 4 or more Integers long it gives me the wrong return.
Can someone look over my code and tell me what I am doing wrong?
arrays - 查找两个数组之间的共同项和唯一项
我使用带有 ansible 的 ec2.py 动态清单脚本来提取 ec2 主机及其标签名称的列表。它返回给我一个 JSON 列表,如下所示,
我正在使用 jq 来解析这个输出。
- 如何仅提取这两个 ASG 共有的字段?
- 如何仅提取这两个 ASG 独有的字段?
redis - 在 Redis 中,如何通过排除第二个排序集中的记录来将记录与第一组分开。?
我有两个排序集,我想将记录与第一个集分开,并通过排除第二个排序集中的记录来存储在新列表/排序集中。
下面是一个例子:
第一组:1,2,3,4,5 第二组:3,5,7,8,9
输出:1,2,4
编辑:我已经找到了加载脚本并使用 eval 从 nodejs 执行脚本的方法。
奇怪的是,当我执行你的脚本时,即使是 5-10 条记录也需要 1 秒的时间来处理,这让我怀疑如果我有数千条记录它的可扩展性有多大。
下面是我的示例 nodejs 代码:
mysql - 在没有主键的情况下在 MySQL 中设置差异
我想在 MySQL 中做一个 EXCEPT/MINUS。如果主键可用,显而易见的解决方案是:
但是,如果我没有键列并且我想要一个实际的设置差异,即考虑所有(可能很多)列怎么办?
我想要类似的东西
这当然是不可能的。我不能将整行分配给变量,可以吗?有任何想法吗?
arrays - symmetricDifference 的通用数组扩展
我编写了这个函数来获取两个字符串数组之间的差异。
现在我想将它扩展到不同类型的通用函数,比如Int
等Double
......
使用此扩展程序,我收到错误:
我尝试了不同的方法但徒劳无功。可能是什么问题呢?
r - 如何通过另一个字符串向量中的元素删除字符串向量中的元素
这段代码应该返回一个 c("b","d") 的向量,它有什么问题?