В запросе bool должен иметь эффект, если у вас уже есть must или filter.Следующее задокументировано здесь -
Предложение (запрос) должно появиться в соответствующем документе.Если запрос bool находится в контексте запроса и имеет предложение must или filter, то документ будет соответствовать запросу bool, даже если ни один из запросов must не совпадает.В этом случае эти пункты используются только для влияния на оценку.
То, что вы можете попробовать - это вложенный запрос bool.
{ "query":
{ "bool":
{ "filter":
[ { "match": { "status": "publish" } },
{ "match": { "authors": "104" } } ,
{ "bool" :
{ "should" : [
{ "bool": { "must_not": { "exists": { "field": "postMeta.byline" } } } },
{ "wildcard": { "postMeta.byline": "*John Doe*" } }
]
}
}
]
}
}
}
Первый бул имеет три условия в фильтре.Таким образом, это будет соответствовать всем трем.Вложенный бул должен.Таким образом, он будет соответствовать как минимум одному из двух.
Я не проверял запрос.