Я начал работать сasticsearch и kibana с использованиемasticsearch-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, цифры остаются прежними. Они меняют только мой поиск (только для тестирования) в моем сценарии:
s2 = Search(using=client, index="cluster")
test_df = pd.DataFrame(d.to_dict() for d in s2.scan())
Почему это происходит? Большое спасибо!