Ответ 1
Используйте "terms"
вместо "term"
.
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-filter.html
{ "terms" : { "entity" : [ 123, 1234, ... ] }}
Я пытаюсь немного поработать над этим запросом. Индекс, который я ищу, также имеет поле "entity" с идентификатором. Таким образом, несколько записей будут иметь "entity" : 16, "entity" 156 и т.д., В зависимости от идентификатора объекта. Мне нужно развернуть этот запрос таким образом, чтобы я мог передать массив или некоторый список значений, например {: term = > {: entity = > [1, 16, 100]}}, и вернуть записи, которые имеют один из этих целых чисел в качестве значения их сущности. Мне до сих пор не повезло, может кто-нибудь мне помочь?
{
"query" : {
"bool" : {
"must" : [
{
"term" : {"user_type" : "alpha"}
},
{
"term" :{"area" : "16"}
}
],
"must_not" : [],
"should" : []
}
},
"filter": {
"or" : [{
"and" : [
{ "term" : { "area" : "16" } },
{ "term" : { "date" : "05072013" } }
]
}, {
"and" : [
{ "term" : { "area" : "16" } },
{ "term" : { "date" : "blank" } }
]
}
]
},
"from" : 0,
"size" : 100
}
Используйте "terms"
вместо "term"
.
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-filter.html
{ "terms" : { "entity" : [ 123, 1234, ... ] }}