我有以下弹性搜索索引数据:
id|message_id| action|
1| 1|delivered|
2| 1| opened|
3| 2|delivered|
4| 3|delivered|
5| 4|delivered|
6| 5| opened|
如何查找所有“未打开”的消息? 预期结果:
id|message_id| action|
3| 2|delivered|
4| 3|delivered|
答案 0 :(得分:1)
使用单个查询会很困难,因为您的数据已经标准化,因此需要自己加入,而ES中不存在AFAIK。我认为有两种解决方案:
ids filter
和term filter
以获取未打开的内容。答案 1 :(得分:0)
使用 not 过滤器。这是一个例子:
GET index1/type1/_search
{
"size": 10,
"query": {
"filtered": {
"filter": {
"not": {
"filter": {
"term": {
"action": {
"value": "opened"
}
}
}
}
}
}
}
}