упругая фильтрация поиска по результатам фильтрации - PullRequest
0 голосов
/ 01 июня 2018

Можно ли фильтровать документы на основе результатов другого фильтра?

Например, если я фильтрую документы на

"_source": [ "animalName" ],
{ "term":  { "animalType": "dog" }}

Как я могу выбрать всех животных, у которых естьимя как собака?

1 Ответ

0 голосов
/ 01 июня 2018

Предполагая, что вы хотите, чтобы все животные типа собака имели имя $ 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] .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...