διαχείρισης δείκτη Kibana δεν θα ενημερώσει καταμέτρηση έγγραφο

ψήφοι
0

Άρχισα να συνεργαστεί με elasticsearch και kibana χρησιμοποιώντας elasticsearch-DSL. Είμαι ακολουθούν αυτόν τον οδηγό: https://elasticsearch-dsl.readthedocs.io/en/latest/index.html#persistence-example

Τα πάντα φαίνεται να δουλεύουν μια χαρά. Ωστόσο, όταν δροσιστικό τα στατιστικά στον πίνακα διαχείρισης δείκτη Kibana, ο αριθμός των εγγράφων δεν θα ενημερώσει μέχρι να εκτελέσετε μια αναζήτηση (θα μπορούσε να είναι τυχαίο, αλλά αμφιβάλλω).

Αυτός είναι ο κωδικός μου για την εισαγωγή στα ελαστικά:

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

Όπου «cluster» είναι ένα έθιμο τάξη που καθορίζει τη δομή του δείκτη μου:

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)

Αυτή είναι η ομάδα Ψάχνω σε: https://www.screencast.com/t/zpEhv66Np Μετά την εκτέλεση του «για» βρόχο πάνω και κάνοντας κλικ στο κουμπί «Ανανέωση δείκτες» για Kibana, οι αριθμοί παραμένουν οι ίδιες. Το μόνο που αλλάζουν εγώ perfom μια αναζήτηση (μόνο για δοκιμή) για το σενάριό μου:

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

Γιατί συμβαίνει αυτό? Πολλά ευχαριστώ!

Δημοσιεύθηκε 09/10/2019 στις 19:02
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Κατ 'αρχάς, έχετε 1 κόμβο (το οποίο πιθανότατα έχει τον έλεγχο και δεδομένων) και στη διαχείριση του δείκτη λέει ότι το καθεστώς του δείκτη σας yellowπου σημαίνει αντίγραφο θραύσματα δεν έχουν κατανεμηθεί (δεν μπορείτε να έχετε αντίγραφα, αν έχετε μόνο 1 κόμβο, γιατί αντίγραφο σημαίνει να θέσει αυτές τις πρωτογενείς θραύσματα σε έναν άλλο κόμβο (ες). Αν θέλετε 1 αντίγραφο, θα πρέπει να έχετε τουλάχιστον 2 κόμβους δεδομένων). Θα πρέπει να ορίσετε αντίγραφα σε 0 για το δείκτη να cluster στην κατάσταση πράσινο και πάλι:

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

Όσο για μέτρηση του δείκτη, μετά την μαζική επιχείρηση πρέπει εκεί να συμβεί flushγια να γράψετε έγγραφα στο δίσκο. Από έγγραφα:

Έξαψη δείκτη είναι η διαδικασία να διασφαλίσει ότι όλα τα δεδομένα που είναι αποθηκευμένα μόνο στο αρχείο καταγραφής συναλλαγών αποθηκεύεται επίσης μόνιμα στο δείκτη Lucene. Κατά την επανεκκίνηση, Elasticsearch επαναλήψεις κάθε μη εκκενωθείσα εργασιών από το αρχείο καταγραφής συναλλαγών στο δείκτη Lucene να το φέρει πίσω στην κατάσταση που βρισκόταν πριν από την επανεκκίνηση. Elasticsearch ενεργοποιεί αυτόματα εξάψεις, όπως απαιτείται, χρησιμοποιώντας heuristics που εμπορεύονται από το μέγεθος της μη εκκενωθείσα καταγραφής συναλλαγών κατά το κόστος της εκτέλεσης κάθε flush.

Μόλις κάθε επιχείρηση έχει ξεπλυθεί είναι μόνιμα αποθηκευμένο στο δείκτη Lucene.

Βασικά, όταν χύμα Ν αριθμός των εγγράφων, δεν τους βλέπω αμέσως, επειδή δεν έχει ακόμη γραφτεί στο δείκτη Lucene. Μπορείτε να ενεργοποιήσετε χειροκίνητα flushμετά bulkτην ολοκλήρωση της λειτουργίας:

POST /<YOUR_INDEX>/_flush

και στη συνέχεια ελέγξτε τον αριθμό των εγγράφων του δείκτη με:

GET _cat/indices?v&s=index

Μπορείτε επίσης να αναγκάσει flush να συμβεί κάθε Ν δευτερόλεπτα, π.χ.

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

Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό το docs , αλλά η πρότασή μου είναι να μην ανησυχείτε για το αν ο αριθμός των εγγράφων που είναι ο ίδιος με τον αριθμό των εγγράφων που ενώνονται, και να χρησιμοποιήσετε Kibana dev toolsαντί για index managementγραφικό περιβάλλον.

Απαντήθηκε 10/10/2019 στις 11:24
πηγή χρήστη

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