首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理UUIDS?

如何处理UUIDS?
EN

Stack Overflow用户
提问于 2017-09-21 17:10:35
回答 1查看 66关注 0票数 0

过程是这样的。我有一组数据,其中包括网址,公司名称和一些其他有关公司的信息。我读取这些数据,获取URL,抓取它们,并用随机生成的UUID保存抓取的数据。

UUID uuid = UUID.randomUUID();

这对于第一轮爬行来说是很好的。问题是当我想重新抓取数据的时候。我将有一组新的数据-which可能是重复的-因此将生成一个新的UUID和一个新的记录。但这并不是我所期望的。我想要做的是看看哪些东西已经被爬取,并更新它们,而不是添加新的记录。另外,这并不是读取URL并查看URL是否已被爬取,因为公司可能会更改其URL,甚至更改其名称。那么如何生成这些UUID呢?并确保它们以某种方式链接到相同的对象,这样我就可以更新对象(记录),而不是在数据库和搜索结果中有两次。

EN

回答 1

Stack Overflow用户

发布于 2017-09-21 17:21:00

您可以创建唯一且可靠地标识每个数据项的最小属性集的散列。

然后,您将持久化这个散列,并在随后的爬行中将收到的数据项传递到散列函数中,并将结果与已经持久化的结果进行比较。如果有匹配,则更新,否则插入。这是该方法的粗略近似值,但我想您会明白的。

棘手的部分是确定哪些属性应该包含在散列中。入选的任何候选人必须:

  • 是数据项的唯一键的一部分
  • Be immutable

如果URLS是可变的--如你所说--那么其中一个可能的候选者是无效的,所以你可能不得不偷看有效载荷,看看它们是否包含可靠的候选者,但如果这些有效载荷来自众多的、不同的来源,那么你不太可能依赖它们都符合一致的“散列方案”。

这个问题没有什么神奇的解决方案,只有你--作为数据的读者--才会知道这些属性是什么,因为唯一的定义可能取决于你如何使用这些数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46339866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档