Currently, if I pass in a number of tags with the body payload, I get results that match any of those key/value pairs, even if only one of those tags matched. This creates a result set that is more broad that I had expected. It would be nice if all given tags were required to match. This would allow the eqOr property to be a true OR while all the given tags are AND'd together. In OpenSearch/elasticsearch syntax, this might look something like the following.
Assume I'm sending in two tags. The first "userid" has an "eq" property of 100, and a second tag "itemid" is using the "eqOr" property with a value of ["4", "7", "13"].
bool: {
must: [
{
bool: {
should: [{
key: "userid",
value: "100"
}]
}
},
{
bool: {
should: [
{
key: "itemid",
value: "4"
},
{
key: "itemid",
value: "7"
},
{
key: "itemid",
value: "13"
}
]
}
}
]
}
This query requires that any returned result includes a userid tag with value 100, and an itemid tag with a value of 4, or 7, or 13.