логический поиск в массиве

У меня есть несколько массивов с примерно 100 возможными значениями , то есть:

a[0] = (a, b, c, d)
a[1] = (a, e)
a[2] = (d, f, g)

Я хочу БЫСТРО вернуть, какие массивы содержат (a || b) && (d || e)

в этом примере, 0 и 1

Я думал о побитовых операциях ... например представляет «abcd» цифрой «1111»; "объявление" от "1001" и так далее. Тогда я мог бы решить «ИЛИ» с помощью всего лишь побитового ИЛИ, а затем проверить, не равны ли они нулю

. Может ли кто-нибудь придумать лучшее решение? этот не очень практичен, так как не кажется очень расширяемым

есть ли СУБД, которые могут сделать это быстро? Я пробовал использовать mongodb, но, похоже, они еще не добавили функцию «$ and» (документ говорит, что это версия 1.9.1, но я могу загрузить только 1.9.0, и она все равно нестабильна)

Я полагаю это "логический поиск", похожий на то, что Google делает все время ... так что я предполагаю, что есть способ лучше (возможно, не такой быстрый, но более расширяемый), чем этот

7
задан Mark Elliot 26 July 2011 в 04:36
поделиться