【发布时间】:2014-01-16 09:51:54
【问题描述】:
我有预定义的匹配为: 父实体具有与其关联的键值集。 父 ENTIRY 下的每个 SET 都可以定义为
ENTITY A:
SET A1. {key1=v11 and key2!=v25}
SET A2. {key1=v12 and key3=v31, v33}
SET A3. {key1=v15 and key2=v25 and key3=v35}
Entity B:
SET B1. {key1=v16 and key2=v26}
SEY B2. {key3!=v39}
SET B3. {key1!=v11 and key3=v31}
我将收到输入为:
{
key1 : [v11,v12,v13],
key2 : [v23,v24],
key3 : [v31,v39]
}
也就是说key1有3个值,key2有2个值,key3只有一个值。
然后我必须返回具有至少一个 SET 的所有实体,其所有键值匹配都由传递的键值对满足。
因此,对于上述实体 A,集合 A1 和集合 A2 的键值对通过输入满足,而对于实体 B,没有集合满足其键值对。 所以只有实体 A 是答案。
可以有 200-1000 个父实体,每个父实体 20 个 SET 和每个 SET 200 个键值对。输入最多可以包含 50 个键值对。
我无法查询外部数据库进行评估。但是数据结构应该是可序列化的,以便存储到 memcache 或 redis 中。
【问题讨论】:
-
请提供一些关于实体数量的详细信息(上限或预期值)实体中的集合数。这可能会严重影响最佳方法。
-
完成,谢谢建议。
标签: algorithm data-structures associative-array key-value key-value-store