Относительно 1:
Перемещение соответствия genre
в контекст фильтра может немного ускорить его (даже если это зависит от многих других факторов), но вы потеряете рейтинг, чтоможет или не может быть важным для вас.В конце, используйте must
, когда ранжирование важно, или filter
, если это не так, и ваша единственная цель состоит в том, чтобы соответствовать документу или не соответствовать некоторым критериям.
Более того, использование ключевого слова type даст вам только семантику "точного соответствия", это может быть тем, что вы хотите ... или нет, в зависимости от того, как вы создаете запросы (пользовательский ввод или список контролируемых выборок)...
Относительно 2:
must_not
уже уже в контексте фильтра , так что это не становится проще, чем то, что вы уже видите.Контекст фильтра состоит из filter
+ must_not
.
Последнее, что я хотел бы добавить, и я всегда добавляю, когда кто-то спрашивает об оптимизации производительности: Преждевременная оптимизация - корень всех зол, поэтому делайте это только тогда, когда вы действительно наблюдаете проблемы с производительностью, никогда раньше.