than query example elastic dates elasticsearch filter range

elasticsearch - query - filtro de rango elastizado para campo de matriz



query dsl kibana (1)

Elasticsearch siempre considera que un campo puede contener una lista de valores, por lo que un filtro de rango debería funcionar. Si alguno de los valores coincide con el rango, se filtrará.

Puede usar ese filtro como parte de una consulta filtrada :

{ "query": { "filtered": { "filter": { "range": { "prices": { "gte": 10000, "lte": 20002 } } } } } }

Sin embargo, la consulta filtrada está en desuso en 2.0, por lo tanto, si usa 2.0, puede usar mejor una consulta bool con un filtro:

{ "query": { "bool": { "must": { "match_all": {} }, "filter": { "range": { "prices": { "gte": 10000, "lte": 20002 } } } } } }

Tenga en cuenta que estoy usando un filtro en mis ejemplos porque solicitó un filtro :)

Tengo un campo que contiene una matriz de enteros, por ejemplo:

_source: { ... prices: [ 20001, 30001 ] }

Me gustaría filtrar los resultados de modo que los precios contengan al menos uno de una lista de valores que están entre, por ejemplo: [20002,30000] # no devolvería el documento anterior porque ningún valor está entre 20002 y 30000, pero [10000,20002] devolvería el documento anterior porque 20001 en el campo de precios del documento anterior está entre 10000 y 20002