Фишка в том, что сортедсеты не сортируются в момент запроса на получение данных. Они хранятся уже сортированными, а сортируется все в момент изменения данных.
Когда мы запрашиваем данные, redis уже знает где они лежат.
Как вариант, каким-то образом посчитать score в таком виде, что бы записи уже лежали отсортированными. Но тогда для каждого набора полей создавать по сортедсету.
Для field1, field2 -- один
Для field1, field2, field3 -- другой
Еще можно хранить несколько сортированных множеств для каждого поля. А потом "налету" объединять их с помощью ZUNIONSTORE/ZINTERSTORE и искать уже в результате вычислений.