Allow value variables in facet filters

lucacanella commented :

I think I stumbled upon the same need.
I created a fictional case that should describe what I’m asking, please see details below:

Scenario
A classic person-rated-movie scenario, I want to find who gave the same rates to one or more movies I rated. Imagine following scenario:

(P1)-[Rated: 3].
                \
                 (Movie 1)-[Rated: 5]-(Me)
                /
(P2)-[Rated: 5]'

The matching pattern for my query should be: (P2)-[Rated: 5]->(Movie 1)<-[Rated: 5]-(Me)

Example
Please find example schema, data and queries in the attachment.
dgraph-facets-filter-variable.txt

What I tried to do
The query starts from node “(Me)”, then gets all rated movies with facets. Actual rates are an int facet for “rated” predicate, so for each movie I want to find all the people that rated that same movie given the value of the rate is the same that has been detected first. I tried to achieve it this way:

{
  scenario(func: type("Person")) @filter(eq(name,"Me")) @ignorereflex {
    name
    rated @facets(r as rate) {
      name
      ~rated @facets(eq(rate, val(r))) {
        name
      }
    }
  }
}

I obviously get this error:

Error Name: t
Message: line 9 column 24: variables are not allowed in facets filter.

I tried other ways, like treating ratings as nodes, but still could’nt get away with this.

Hardcoding a value, instead of using a variable with val, succedes:

{
  scenario(func: type("Person")) @filter(eq(name,"Me")) @ignorereflex {
    name
    rated @facets(rate) {
      name
      ~rated @facets(eq(rate, 5)) {
        name
      }
    }
  }
}