似乎您尝试将对关系数据库的了解与无sql数据库(例如Elasticsearch(ES))一起使用。您有几种选择。
选项1。将所有信息保存到同一文档中。如果在索引初始文档后获得更多数据,只需使用额外的键进行更新。如果不同的文档具有不同的架构(也称为键集),则对于ES来说不是问题。同样,在查询ES时,如果您担心ES的请求/响应的大小,则可以指定要检索的字段。
选项2。您可以types
对不同的id / email文档和id / keys文档使用不同的名称,但要始终将它们存储在相同的文件中index
。然后,您可以创建一个仪表板并放置几个可视化对象:a)可以选择的数据表id
;b)通过单击显示所有email
s的电子邮件可视化(一旦您id
在可视化a中选择一个),您的Kibana将立即为您显示给定文档的电子邮件id
c)按键可视化将显示所有keys
(再次)当您选择id
或时email
,此可视化效果将更新为仅显示与所选内容相关的键)
选项#3。与上述相同,但您可以使用不同indices
而不是不同的types
。只要这些索引具有公共前缀(例如docs-email
和docs- keys
),您就可以在kibana中使用其前缀来从不同索引中检索数据
选项#4。您在问题中描述的应用程序级连接。ES对它存储的所有数据提供REST API。您始终可以从中检索所需内容并建立客户端联接(这使您感到奇怪,为什么选择ES作为存储数据而不是关系数据库的后端)