usa tutorial que puertos para instalar index funciona elastic crear como comandos elasticsearch field document exists

tutorial - La mejor manera de verificar si existe un campo en un documento de Elasticsearch



puertos elasticsearch (5)

El filtro exists ha sido reemplazado por la consulta exists de ES 2.1, aunque su funcionamiento es el mismo. Además, el filtro que falta se elimina y la consulta que falta queda en desuso.

Para obtener todos los documentos que tienen un campo en particular,

"bool": { "must": { "exists": { "field": "my_field" } } }

y para obtener todos los documentos que NO tienen un campo en particular, must_not con must_not como este

"bool": { "must_not": { "exists": { "field": "my_field" } } }

Documentos elásticos: https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-missing-query.html

Puede ser una pregunta muy estúpida, ¿Cuál es la mejor manera de verificar si existe un campo de un documento en elasticsearch? No encuentro nada en la documentación.

Por ejemplo, si este documento no tiene el campo / clave "precio", no quiero devolver el resultado.

{"updated": "2015/09/17 11:27:27", "name": "Eye Shadow", "format": "1.5 g / 0.05 oz",}

¿Que puedo hacer?

Gracias



Puedes usar el filtro existente:

{ "query": { "filtered": { "filter": { "exists": { "field": "status" } }, "query": { "match_all": {} } } } }

Saludos, Alain


Puede usar el filtro exists combinado con un filtro bool/must como este:

{ "query": { "filtered": { "filter": { "bool": { "must": [ { "exists": { "field": "price" } }, ... <-- your other constraints, if any ] } } } } }

También puede usar el filtro missing combinado con un filtro bool/must_not :

{ "query": { "filtered": { "filter": { "bool": { "must_not": [ { "missing": { "field": "price" } } ] } } } } }