Drools 5.1.0
I have a need to match list of incoming strings  to those in the rule. All the strings in the fact object needs to exists in the rule.
I have a large set of rules around 5000.
In general I have around 4 conditions per rule and its taking in average around 30- ~40 ms to go through the 5000 rules. 

However the following construct that I am using to match the incoming set of input strings is adding on the average 200ms to rules execution.
Is there a more efficient way to do this?

MyContext is the fact class and classes is array of String.
I need to make sure that the classes array contains all three strings TestString1, TestString2 and TestString3.

MyContext(DclassesList : classes)
exists( String(this matches "TestString1") ||  String(this matches "TestString2") || String(this matches "TestString3") from DclassesList)

Of course each rule in the 5000 can have diff set of strings to match.

Thanks