Essentially we will support two new operators that work with arrays. I will describe them in high-level terms trying to avoid any naming suggestions in my description. What should those operators be called?
Operator 1: Any of the items must be contained in the array
Example:
Object has prop languages with values ["Chinese", "French", "English"]
User searches for ["French", "English"]
The object is a match and is returned
In
Any
AnyEqual
Contains
ContainsAny
Other (please comment)
0voters
Operator 2: All of the items must be contained in the array
Example:
Object has prop languages with values ["Chinese", "French", "English"]
User searches for ["French", "English", "Turkish"]
Personally, I like anything with Contains in the name. For the following reason: Contains does not imply anything about objects that are not contained. In other words contains "foo" and "bar" says that both "foo" and "bar" must be contained. But it does not say anything about "baz". That is also how the operator would work. Since it would use the same inverted index that can only make assumptions about what’s contained, but no assumptions about what’s not contained.
Hey, I’m just happy Weaviate has gotten serious about pushing this out. It’s going to be extremely helpful to those of us trying to establish access control over our content.