Фильтрация по нескольким значениям внутри атрибута
У меня есть объект Post, который содержит набор комментариев, состоящий из строкового поля Text и булевого поля Deleted.
Я использую ElasticSearch для получения всех этих сообщений, имеющих комментарий, содержащий определенную строку. Но я хочу исключить эти комментарии с Deleted = True.
Я пытаюсь использовать bool-фильтр для постов следующим образом:
{
"bool": {
"must": [
{
"match": {
"comments.text": "the string to match",
}
},
{
"match": {
"comments.deleted": False,
}
},
],
},
}
Тем не менее, как только комментарий будет удален (установлено Deleted=True), весь пост с таким комментарием будет исключен.
Я предполагаю, что это происходит потому, что фильтр не знает, что то, что я хочу, это соответствовать этим комментариям, которые соответствуют строке И не удалены.
Так что мой вопрос таков: Есть ли способ отфильтровать комментарии, к которым я хочу применить соответствие?
Заранее большое спасибо!
pd: Я работаю с Django для управления своим доменом, так что на самом деле Post.comments - это кверисет, который дает мне все комментарии этого поста.