【发布时间】:2017-06-30 16:23:09
【问题描述】:
我目前正在尝试创建一个查询,在切换到弹性搜索 5 后以不同方式匹配过滤器中的多个字段,但它们似乎不起作用。这就是我认为查询应该是的:
query: {
bool: {
must: [{ match: { name: 'athing' }}],
filter: [
{ bool: {
must: [
{ term: { ownerId: 123} },
{ term: { itemId: 3453} },
]
}},
{ bool: {
minimum_should_match: 1,
must: [
{ term: { groupId: 123565} },
{ term: { groupId: 5555} },
]
}}
]
}
}
在这种情况下,结果必须与未分析的项目 ID 和组 ID 匹配。在前面的代码中,使用了弹性搜索 1.5,匹配是通过放置在过滤器中的“and”和“or”的集合来完成的。这似乎不再起作用了。
我还想这样做,以便查询能够获取具有传递组 ID 之一的任何人(而不是所有人)。我试图在过滤器的第二个布尔查询中这样做。
理想情况下,我想要一个匹配 'athing' 的查询,属于所有者 ID 123 和组 ID 123565 或 5555 中存在的项目 ID 3453。
【问题讨论】:
标签: elasticsearch