elasticsearch - 基于过滤结果的弹性搜索过滤
问题描述
是否可以根据另一个过滤器的结果过滤文档?
例如,如果我过滤文档
"_source": [ "animalName" ],
{ "term": { "animalType": "dog" }}
如何过滤选择所有名称为狗的动物?
解决方案
假设您希望所有类型为 dog 的动物都具有名称$someName,请尝试以下操作:
{
"_source: ["animalName", "animalWeight", ...],
"query": {
"bool": {
"filter": [{
"term": {"animalType": "dog"}
},{
"term": {"animalName": $someName}
}]
}
}
}
[Udate]
你的意思是这样的?
select distinct a2.*
from animals a1
join animals a2 on a1.name = a2.name
where 1
and a1.type = 'dog'
and a2.type != 'dog'
我不知道如何在弹性中实现这一点,因为“SQL 风格的连接”“非常昂贵” [1]。
推荐阅读
- kubernetes - Kubernetes pod 中多个 emptyDir 的后果是什么?
- javascript - useEffect 依赖数组中的 [history.push] 是否会导致重新渲染?
- elasticsearch - 从弹性搜索上的子聚合访问嵌套变量
- html - 如何移动文本装饰下划线属性使其不会破坏文本
- javascript - 即使javascript条件为假也运行的PHP函数(document.write(
)) - c# - 如何在 Azure EventGrid 中的一批事件中触发重试/死信特定事件
- amazon-web-services - 大文件时 S3 预签名 url 失败
- angular - 如何从另一个 .pipe() 内部将参数传递给包装的“.pipe()”逻辑
- javascript - LinkedIn Marketing API - 完整的 multipartUpload 请求无效
- python - 占位符字段 - Django CMS