我来看看脚本过滤器。以下过滤器应仅返回在
fieldname字段中具有至少10个元素的文档,该文档是一个数组。请记住,这可能很昂贵,具体取决于索引中有多少个文档。
"filter" : { "script" : { "script" : "doc['fieldname'].values.length > 10" }}
关于第二个问题:那里真的有一个空数组吗?还是仅仅是一个没有值的数组字段?您可以使用缺少的过滤器来获取对特定字段没有价值的文档:
"filter" : { "missing" : { "field" : "user" }}
否则,我想您需要再次使用脚本,类似于我上面建议的脚本,只是输入的长度不同。如果长度是恒定的,我将其放在该
params部分中,以便脚本将由elasticsearch缓存并重新使用,因为它始终是相同的:
"filter" : { "script" : { "script" : "doc['fieldname'].values.length > param1" "params" : { "param1" : 10 } }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)