首页 > 解决方案 > 新文档未添加到 Elastic Search 中的现有索引中

问题描述

我是 ELK 堆栈工作流程的新手,目前我正在做一个项目,每次用户请求时都会从 twitter 中提取实时提要,并且我想使用 Kibana 显示结果。在我的项目中,我没有使用 Logstash 来收集数据,而是在 python 中使用了 tweepy 库,然后将其连接到 Elastic Search,我在其中创建了一个索引来存储我的传入数据。

问题:

该代码正在运行,但我的问题是,只有在我的新的实时提要集进入时每隔一次我提供一个新的索引名称时,传入的文档才会被存储。如果我想使用相同的索引名称将所有传入的文档添加到现有的,新文件没有更新。

我附上了我的代码如下:

def filterKeys(document):
            return {key: document[key] for key in use_these_keys }
 from elasticsearch import Elasticsearch
 from elasticsearch import helpers
 es_client = Elasticsearch(http_compress=True)
 def doc_generator(df):
            df_iter = df.iterrows()
            #index, document = next(df_iter)
            for index, document in df_iter:
                yield {
                        "_index": 'twitter_req',
                        "_type": "twitter_twp",
                        "_id" : f"{document['ID']}",
                        "_source": filterKeys(document),
                    }
            #raise StopIteration
 helpers.bulk(es_client, doc_generator(twitter_feeds))

你们中的任何人都可以告诉我哪里出了问题以及如何做到这一点,以便每次代码运行时都会自动更新传入的文档。

标签: python-3.xelasticsearchkibana-7

解决方案


推荐阅读