我有多個陣列用約100個可能值,即:陣列上布爾搜索
a[0] = (a, b, c, d)
a[1] = (a, e)
a[2] = (d, f, g)
欲快速度返回其陣列含有(a || b)中& &(d || E)
在這個例子中,0和1
我在想按位操作......就像用「1111」代表「abcd」; 「ad」by「1001」,依此類推。然後我可以用OR來解決「OR」,然後檢查兩者是否都爲非零。
誰能想出更好的解決方案?這一個不是很實用,因爲它似乎不是非常容易的
有沒有可以快速做到這一點的任何DBMS?我用mongodb嘗試過,但它似乎沒有添加「$和」功能(doc說它是1.9.1版本,但我只能下載1.9.0,並且它不穩定)
I假設這是一個「布爾搜索」,類似於谷歌一直在做的事情...所以我猜測有一個更好的方法(可能不是那麼快,但更容易)
如果你的數組只有100可能的值,按位解決方案似乎很不錯。 –
與往常一樣,在內存速度競爭中,如果您可以負擔得起復制數據庫,那麼它變得微不足道(至少在概念上)。你說「你只有」有100萬個陣列,最多80個值。因此,只需構建80個數組,其中第一個包含數組的索引,等等......說實話,我只是猜測使用整數列表,這將比通過「按位表示」迭代多次更快。 – Fezvez