Я использую ElasticSearch и хочу сделать запрос.
У меня есть разные модули: ['a', 'b', 'c', 'd']
.где a
и b
имеют дополнительное значение (companyId
) Мне нужно отфильтровать текст всех модулей, но мне нужно отфильтровать companyId
только для a
и b
не для модулей c
и d
.
Это будет выглядеть примерно так:
SELECT * FROM my_table WHERE (modules in ('a', 'b') and companyId='myid') OR (modules in ('b', 'c'))
Но у меня есть это:
client.search({
index: INDEX,
type: TYPE,
body: {
query: {
bool: {
must: {
match: { text: 'mytext' },
},
filter: [
{ terms: { module: ['a', 'b', 'c', 'd'] } },
{ term: { companyId: 'myid' } },
]
}
}
}
});
Спасибомного, если вы можете помочь.