【发布时间】:2017-04-18 08:25:15
【问题描述】:
我正在尝试在我的 Django 项目中使用 ElasticSearch 作为 NoSQL 数据库。
目标是在另一端插入Kibana,并能够在那里可视化我的数据。
我无法选择添加另一个数据库并仅使用 ElasticSearch 进行索引,因为我的项目正在插入现有基础架构。
所以我安装了以下两个模块:
- django 干草堆
- 弹性搜索
我原以为不需要 SQLite(或任何其他数据库)进行存储并将 ElasticSearch 用作 NoSQL 存储(这错了吗?)
我将 Haystack 连接设置添加到我的项目设置中,然后寻找摆脱“数据库”或将其替换为指向我的 ElasticSearch 的值但没有成功:(
这就是我所坚持的:
settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack'
},
}
在我可以在 StackOverflow 和代码 sn-ps 上找到的所有答案中,我永远不会看到这些 DATABASES 设置发生更改,所以我假设人们使用数据库进行存储,而 ElasticSearch 仅用于他们的搜索引擎/索引,这不是我的正在寻找。
有没有一种方法可以让 ElasticSearch 作为我的存储数据库(就像我使用 MongoDB 一样),而不破坏 Django 的模型和界面?
【问题讨论】:
标签: django database elasticsearch