我將預定義的匹配項設置爲: 父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中。
請提供關於實體數量的實體數量的一些細節(上限或期望值)。這可能會對最佳方法產生很大影響。 –
完成,感謝您的建議。 –