我将预定义的匹配项设置为: 父ENTITY具有与其关联的键值集。 下父ENTIRY每个集合可以被定义类似最适合用于键值对评估的数据结构
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的实体,这些SET的所有键值匹配都由传递的键值对满足。
因此,对于上面提到的实体A,集合A1和集合A2的键值对由输入满足,而对于实体B,没有集合的键值对满足。 所以只有ENTITY A才是答案。
可以有200-1000个父实体,每个父实体有20个SET ENTITY & 200个键值对。输入可能包含多达50个键值对。
我无法查询外部数据库进行评估。但是数据结构应该可序列化以存储到memcache或redis中。
请提供关于实体数量的实体数量的一些细节(上限或期望值)。这可能会对最佳方法产生很大影响。 –
完成,感谢您的建议。 –