El índice de gestión Kibana no actualizará recuento de documentos

votos
0

Empecé a trabajar con elasticsearch y Kibana usando elasticsearch-DSL. Estoy siguiendo esta guía: https://elasticsearch-dsl.readthedocs.io/en/latest/index.html#persistence-example

Todo parece funcionar bien. Sin embargo, al actualizar las estadísticas en el panel de administración de índices de Kibana, el recuento de documentos no se actualizará hasta que realizo una búsqueda (podría ser una coincidencia, pero lo dudo).

Este es mi código para insertar en elástico:

connections.create_connection(hosts=['localhost'])
for index, doc in df.iterrows():
    new_cluster = Cluster(meta={'id': doc.url_hashed}, 
                      title = doc.title,
                      cluster = doc.cluster,
                      url = doc.url,
                      paper = doc.paper,
                      published = doc.published,
                      entered = datetime.datetime.now()
                   )
    new_cluster.save()

Donde grupo es una clase personalizada que define mi estructura del índice:

from datetime import datetime
from elasticsearch_dsl import Document, Date, Integer, Keyword, Text
from elasticsearch_dsl.connections import connections

class Cluster(Document):
    title = Text(analyzer='standard', fields={'raw': Keyword()})
    cluster = Integer()
    url = Text()
    paper = Text()
    published = Date()
    entered = Date()

    class Index:
        name = 'cluster'

    def save(self, ** kwargs):
        return super(Cluster, self).save(** kwargs)

Este es el panel que estoy viendo: https://www.screencast.com/t/zpEhv66Np Después de ejecutar el bucle for y haciendo clic en el botón Actualizar índices en la Kibana, los números siguen siendo los mismos. Sólo cambian I perfom una búsqueda (sólo para las pruebas) en mi script:

s2 = Search(using=client, index=cluster)
test_df = pd.DataFrame(d.to_dict() for d in s2.scan())

¿Por qué está pasando esto? ¡Muchas gracias!

Publicado el 09/10/2019 a las 19:02
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

En primer lugar, usted tiene 1 nodo (que probablemente es el amo y datos) y en la gestión del índice se dice que el estado de su índice es yellowlo que significa réplicas de fragmentos no se asignan (no se puede tener réplicas si sólo tiene 1 nodo, porque réplica significa poner esos fragmentos primarios en otro nodo (s). Si desea 1 réplica, es necesario tener al menos 2 nodos de datos). Es necesario configurar réplicas a 0 para el índice para hacer de clúster en estado verde de nuevo:

PUT /<YOUR_INDEX>/_settings
{
    "index" : {
        "number_of_replicas" : 0
    }
}

En cuanto a número de índice, después de una operación mayor no tiene que suceder flushpara escribir documentos en el disco. A partir de documentos:

Rubor un índice es el proceso de asegurarse de que los datos que se almacenan en la actualidad sólo el registro de transacciones también se almacena de forma permanente en el índice Lucene. Al reiniciar, repeticiones Elasticsearch cualquier operación no volcados desde el registro de transacciones en el índice Lucene para ponerla de nuevo en el estado en que se encontraba antes de la reanudación. Elasticsearch desencadena automáticamente rubores, según sea necesario, utilizando la heurística que comercian fuera el tamaño del registro de transacciones unflushed contra el costo de la realización de cada descarga.

Una vez que cada operación ha sido lavado se almacena de forma permanente en el índice Lucene.

Básicamente, cuando a granel número N de documentos, que no se ve inmediatamente, porque todavía no están escritos en el índice de Lucene. Puede activar manualmente flushdespués de bulkque se complete la operación:

POST /<YOUR_INDEX>/_flush

y luego comprobar el número de documentos en el índice con:

GET _cat/indices?v&s=index

También puede forzar al ras a pasar cada N segundos, por ejemplo:

PUT /<YOUR_INDEX>/_settings
{
    "index" : {
        "refresh_interval" : "1s"
    }
} 

Puede leer más sobre esto en documentos , pero mi sugerencia es que no se preocupe si el número de documentos son los mismos que el número de documentos que voluminosa, y utilizar Kibana dev toolsen lugar de index managementinterfaz gráfica de usuario.

Respondida el 10/10/2019 a las 11:24
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more