Filter/query 带有嵌套子表达式

Filter/query with nested subexpressions

我将如何转换查询,例如

(((field1:value1 OR
   ((field2: value2a AND field0:value0) OR field2:value2b))
       AND (field3:value3 OR field4:value4)
       OR ((field1:value101 OR field2:value102)
 AND field100:value23)

变成 bool query/filter?使用 "nested" 过滤器似乎不允许任意子表达式深度,因为我得到

QueryParsingException[[ptsiem] [nested] filter does not support [should]

我错过了文档中的 andor 过滤器:

这些似乎允许用户构建任何深度的表达式:

{"or": [
    {"and": [
       {"term": {"field1": "w1"}},
       {"term": {"user": "*admin*"}}
    ]},
    {"and": [
        {"term": {"id": "100500" }},
        {"term": {"language": "symta"}},
        {"term": {"oentuh": "bwmbqjk"}}
    ]}
]}