Algorithm 从一个集合而不是另一个集合中查找元素的最佳方法

Algorithm 从一个集合而不是另一个集合中查找元素的最佳方法,algorithm,Algorithm,我有两个收藏。一个是带有id和内容的项目列表,让我们调用此列表ItemList。我有另一个集合,它告诉我用户是否选择了某个项目。调用此收集的列表将具有用户id和项目id。用户和项目的数量都非常大。对于不在收集列表中的用户,从ItemList查询项目的最佳方式是什么 以下是我的一些想法: 使用关系数据库的联接来解决这个问题。我唯一的疑问是这个数据集是否能处理非常大的数据集 使用blooms筛选器存储收集的项目列表,并在查询项目时检查它是否不在筛选器中 如果上述想法无法扩展,你能为我提供一些算法吗。

我有两个收藏。一个是带有id和内容的项目列表,让我们调用此列表ItemList。我有另一个集合,它告诉我用户是否选择了某个项目。调用此收集的列表将具有用户id和项目id。用户和项目的数量都非常大。对于不在收集列表中的用户,从ItemList查询项目的最佳方式是什么

以下是我的一些想法:

  • 使用关系数据库的联接来解决这个问题。我唯一的疑问是这个数据集是否能处理非常大的数据集
  • 使用blooms筛选器存储收集的项目列表,并在查询项目时检查它是否不在筛选器中

  • 如果上述想法无法扩展,你能为我提供一些算法吗。这些不能是内存中的解决方案,因为我肯定需要持久化数据。

    您也可以使用位集

    Load into some bitset ItemList (ItemID is index in the bitset).
    Load into another bitset IDs_for_user for this user.
    Perform opearation: Resut = ItemList ANDNOT IDs_for_user. 
    
    您可以在此处获得免费的位集库:

    似乎是一种平衡线算法。我喜欢这种方法。在我确定答案之前,我会做一些研究。