[API Feedback] Naming for new Array filters operators

For context, see this post and this comment with some thoughts on naming.

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)

0 voters

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"]
  • The object is a not a match (it misses "Turkish"
  • All
  • AllEqual
  • ContainsAll
  • Other (please comment)

0 voters

2 Likes

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.

1 Like

Additional ideas:

for 1)

  • AnyIn

for 2)

  • AllIn (All_In)

ContainsAny and ContainsAll are part of the poll, you can vote for them :slight_smile:

2 Likes

oh, only saw “Contains”, edited my reply

1 Like

I think “Includes” and “IncludesAll” is also a good candidate.

2 Likes

I would named the inclusion prefix keyword either:

  • Contains
  • Has
  • Includes

Maybe consider choosing in a way that not conflicts with a string inclusion.

And the suffix, considering my background in Javascript:

  • Some → at least one item has to assert the predicate
  • Every → all items has to assert the predicate
2 Likes

Nice, both of my votes were currently top ranked – beautiful satisfaction of social consensus

I like ContainsAny for the contrast with ContainsAll, but think the brevity of Contains is going to be a more common use case.

3 Likes

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.

1 Like

Seems like ContainsAny is catching up with Contains for case 1. Agreed, @CShorten, ContainsAny is more consistent with ContainsAll.

Any ideas when you are going to release this? Need it like yesterday.

Thanks!

Any updates on release date of this feature?

Also checking in, as it’s been a couple months since this was discussed? Any updates on release of Contains operator?