Kibana Index Verwaltung nicht Dokumentanzahl aktualisieren

stimmen
0

Ich begann mit Elasticsearch und Kibana mit Elasticsearch-dsl zu arbeiten. Ich folge dieser Anleitung: https://elasticsearch-dsl.readthedocs.io/en/latest/index.html#persistence-example

Alles scheint gut zu funktionieren. Wenn jedoch die Statistiken in Kibana Index Management-Panel Auffrischen, wird die Dokumentenzählung aktualisieren, bis ich eine Suche durchführen (könnte Zufall sein, aber ich bezweifle es).

Dies ist mein Code für das Einfügen in einem elastischen:

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()

Wo „Cluster“ ist eine benutzerdefinierte Klasse, die meine Indexstruktur definiert:

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)

Dies ist das Panel Ich betrachte: https://www.screencast.com/t/zpEhv66Np Nachdem die „für“ Schleife oben ausgeführt wird, und klicken Sie auf den „Neu laden Indizes“ auf Kibana, bleiben Zahlen gleich. Sie ändern sich nur perfom ich eine Suche (nur zum Testen) auf meinem Skript:

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

Warum passiert dies? Danke vielmals!

Veröffentlicht am 09/10/2019 um 19:02
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Zuerst müssen Sie 1 Knoten (was wahrscheinlich und Daten - Master) und in Indexverwaltung heißt es , dass Ihr Index - Status ist , yellowwas bedeutet , Replikat - Shards nicht zugewiesen (Sie können nicht Repliken haben , wenn Sie nur 1 Knoten haben, weil Replik bedeutet setzen diese primären Shards auf einem anderen Knoten (s). Wenn Sie ein Replikat möchten, müssen Sie mindestens 2 Datenknoten) haben. Sie müssen Repliken auf 0 setzen für die Index - Cluster in Status wieder grün zu machen:

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

Wie für die Indexzahl, nachdem Massenvorgang muss es passiert flushDokumente auf der Festplatte zu schreiben. Von docs:

einen Index Spülung ist der Prozess, sicherzustellen, dass alle Daten, die derzeit nur im Transaktionsprotokoll gespeichert ist, werden auch in dem Lucene Index dauerhaft gespeichert. Beim Neustart, es Elasticsearch Replays alle unflushed Operationen aus dem Transaktionsprotokoll in den Lucene-Index in den Zustand zu bringen, dass es in vor dem Neustart war. Elasticsearch löst automatisch Wallungen nach Bedarf, mit Heuristiken, die die Größe des unflushed Transaktionsprotokoll gegen die Kosten für die Durchführung jeder Spülung abwägen.

Sobald jeder Betrieb wird permanent im Lucene Index gespeichert gespült wurde.

Grundsätzlich, wenn Sie N Anzahl der Dokumente Substanz-, Sie sehen sie nicht sofort, weil sie noch nicht in Lucene Index geschrieben. Sie können manuell auslösen flushnach bulkVorgang abgeschlossen ist:

POST /<YOUR_INDEX>/_flush

und dann überprüfen Anzahl der Dokumente in Index mit:

GET _cat/indices?v&s=index

Sie können auch bündig zwingen, alle N Sekunden geschehen, zum Beispiel:

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

Sie können mehr über sie in lesen docs , aber mein Vorschlag ist , nicht darum zu kümmern , wenn Anzahl der Dokumente die gleiche wie die Anzahl der Dokumente sind Sie gebauscht, und verwenden Sie Kibana dev toolsstatt index managementGUI.

Beantwortet am 10/10/2019 um 11:24
quelle vom benutzer

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