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, www.elastic.co, 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
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:
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.