# Encontrar miles de elementos que hacen match con miles

**URL:** <https://discuss.elastic.co/t/encontrar-miles-de-elementos-que-hacen-match-con-miles/121563>\
**Category:** Elastic en Español\
**Created:** [February 26, 2018, 8:23pm UTC](https://discuss.elastic.co/t/encontrar-miles-de-elementos-que-hacen-match-con-miles/121563 "2018-02-26T20:23:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![willypol](https://avatars.discourse-cdn.com/v4/letter/w/dbc845/32.png) [@willypol](https://discuss.elastic.co/u/willypol)\
**Post date:** [February 26, 2018, 8:23pm UTC](https://discuss.elastic.co/t/encontrar-miles-de-elementos-que-hacen-match-con-miles/121563/1 "2018-02-26T20:23:25Z")

</div>

Hola!  
Me gustaría saber si alguien se ha encontrado con un problema similar que al planteo y como lo ha resuelto.  
Imaginemos que tenemos miles de peticiones de navegación (packetbeat) en ES. Los índices tienen unos tamaños aproximados de 50Gb diarios. Por poner un ejemplo, las peticiones tienen un campo host (el dominio al que se hace la petión; [google.com](http://google.com), [www.elastic.co](http://www.elastic.co), [discus.elastic.co](http://discus.elastic.co)...) Por otro lado tengo listas de hosts (de varios miles de hosts, a modo de lista blanca o negra de accesos).  
Cual sería la manera de decirle a elastic que me retorne todos las peticiones que pertenecen a una lista? O por el contrario, cuales son las peticiones que no pertenecen? Hay que tener en cuenta que las listas sufren cambios (se añaden y quitan hosts) de una forma más o menos frecuente.  
Esta claro un term filter parece posible, pero con miles de campos ya no parece óptimo.  
Y ya para rizar el rizo, si lo que tengo son elementos con wildcard? osea: \*.elastic.co

Muchas gracias por la ayuda!

---

<div class="post-metadata">

**Author:** ![Ugo\_Sangiorgi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ugo_sangiorgi/32/146361_2.png) [@Ugo\_Sangiorgi](https://discuss.elastic.co/u/Ugo_Sangiorgi)\
**Post date:** [February 28, 2018, 6:46pm UTC](https://discuss.elastic.co/t/encontrar-miles-de-elementos-que-hacen-match-con-miles/121563/2 "2018-02-28T18:46:46Z")

</div>

Hola Guillermo,  
Puedes solventar eso de manera muy sencilla usando "terms":  
[https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html)

Supongamos que tengas dos indices `mybeat-2018` donde estas sus beats y `whitelist` donde esta su lista de hosts.

como ejemplo si en el indice `mybeat-2018` tienes documentos como:

```auto
PUT /mybeat-2018/_doc/1
{
	"host" : "elastic.co",
	"ttl" : 40
}

PUT /mybeat-2018/_doc/2
{
	"host" : "elastic.co",
	"ttl" : 666
}

PUT /mybeat-2018/_doc/3
{
	"host" : "google.com",
	"ttl" : 55
}

```

y en el `whitelist` puedes tener una lista de hosts como:

```auto
PUT /whitelist/_doc/1
{
 "hosts" : [
   {
     "name" : "elastic.co"
   },
   {
     "name" : "twitter.com"
   }
 ]
}

```

Entonces en una búsqueda por los términos en `whitelist` en los indices `mybeat-*` debes referenciar el documento que contiene la lista de hosts (en nuestro caso el `id: 1`), algo como:

```auto
GET /mybeat-*/_search
{
    "query" : {
        "terms" : {
            "host" : {
                "index" : "whitelist",
                "type" : "_doc",
                "id" : "1",
                "path" : "hosts.name"
            }
        }
    }
}

```

---

<div class="post-metadata">

**Author:** ![willypol](https://avatars.discourse-cdn.com/v4/letter/w/dbc845/32.png) [@willypol](https://discuss.elastic.co/u/willypol)\
**Post date:** [February 28, 2018, 7:52pm UTC](https://discuss.elastic.co/t/encontrar-miles-de-elementos-que-hacen-match-con-miles/121563/3 "2018-02-28T19:52:33Z")

</div>

Hola!  
Muchas gracias, no sabía de esa opción. La voy a probar ... ya te contaré.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 28, 2018, 7:52pm UTC](https://discuss.elastic.co/t/encontrar-miles-de-elementos-que-hacen-match-con-miles/121563/4 "2018-03-28T19:52:41Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
