python-3.x - 新文档未添加到 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))
你们中的任何人都可以告诉我哪里出了问题以及如何做到这一点,以便每次代码运行时都会自动更新传入的文档。
解决方案
推荐阅读
- powershell - 如何在 AD 中计算机对象的描述字段中找到特定字符串?
- android - 如何在 Android 中压缩两个 Observable?
- reactjs - Heroku 服务于 create-react-app 开发构建而不是生产
- python - 如何在我的 Django/Python 模板中显示数字的四舍五入版本?
- sql - 如何为另一个表中的每个半相关记录显示一个表中的所有记录?
- angular - Typescript Observable 继承
- flutter - 如何让 AppBar 从顶部滑动并覆盖屏幕内容,就像 inshorts 应用栏一样
- swift - Xcode - 伞框架 - 缺少模块
- r - 多元回归预测区间误差
- css - 在 DIV 中定位元素