Map 为大型文档集分配唯一ID

Map 为大型文档集分配唯一ID,map,unique-id,Map,Unique Id,本质上,我们希望能够将ID唯一地分配给一大组文档中包含的所有N个g。因此,如果我有1000万个文档要处理,我会从每个文档中读取文本,得到N个字符(主要是三角形),并且应该能够为这些N个字符分配唯一的ID。不知何故,我需要存储这些唯一的ID,以便快速获取它们。基于上述评论,我建议您只需使用N-gram作为自己的标识符。这样就不需要维护从IDs到N-grams的单独映射 例如,假设您有一个包含文本“hello”的文档,其中包含三叉图“hel”、“ell”和“llo”(假设不包括单词边界)。您可以直接

本质上,我们希望能够将ID唯一地分配给一大组文档中包含的所有N个g。因此,如果我有1000万个文档要处理,我会从每个文档中读取文本,得到N个字符(主要是三角形),并且应该能够为这些N个字符分配唯一的ID。不知何故,我需要存储这些唯一的ID,以便快速获取它们。

基于上述评论,我建议您只需使用N-gram作为自己的标识符。这样就不需要维护从IDs到N-grams的单独映射


例如,假设您有一个包含文本“hello”的文档,其中包含三叉图“hel”、“ell”和“llo”(假设不包括单词边界)。您可以直接使用N-gram作为文档签名{“hel”、“ell”、“llo”},而不是首先设置像1=“hel”、2=“ell”、3=“llo”这样的ID映射,并将文档签名设置为集合{1,2,3}。通过这种方式,您甚至可以将扫描和处理阶段结合起来,只对文档进行一次扫描。

假设您的N相当小,为什么不使用每个N-gram来标识自己呢?在大多数情况下,N=3(三元图),但我仍然需要将它们保留在某个位置,以便以后获取它们。从本质上讲,有一个扫描阶段(其中三角图是从所有文档中分配的唯一ID)和处理阶段(其中读取文档,并使用其所有三角图中的唯一ID创建文档签名)