It's not possible to perform this kind of set-based operation.
If the SELECT statement inside of NOT IN(...) targets the same index, then this could be achieved with a bool query with two must_not clauses e.g.
{
"query": {
"bool": {
"must_not": [
{
"term": {
"transaction": {
"value": "read"
}
}
},
{
"term": {
"data_source": {
"value": "File"
}
}
}]
}
}
}
which would be the equivalent of SQL
SELECT *
FROM
jobs
WHERE
transaction <> 'read'
AND
data_source <> 'File'