es中字段A 值是一个list a, b, c, d,当入参为a, b, c, d, e 或 a, b, c, d 就可以匹配到;如果是 a, b, c 就匹配不到。
{
"query": {
"bool": {
"filter": [{
"script": {
"script": {
"source": """
List<Integer> fieldAValues = Arrays.asList(doc['field_a'].values());
List<Integer> searchValues = Arrays.asList(params.searchValues);
return searchValues.stream().allMatch(fieldAValues::contains);
""",
"lang": "painless",
"params": {
"searchValues": [a, b, c, d]
}
}
}
}]
}
}
}
该方法比较耗cpu。
其他类似方法: