我将product
类型数据加载到包含catalogue_number
和name
的Elasticsearch中。我还将customer
数据加载到包含name
和purchases
的Elasticsearch中(其中购买的是一系列产品编号)。
例如:
CATALOGUE_NUMBER, NAME
518, "Toilet Paper"
388, "Candy Bar"
263, "Carrots"
并且,对于客户:
NAME, PURCHASES
"Jack", [518, 388]
"John", [263]
"Bill", [263, 518]
考虑到这种关系是多对一的(即客户购买了许多商品),我是否可以使用Kibana查看将购买链接到特定客户的图表,或者这是否超出范围?
我的最终目标是让图表显示product
和customer
作为顶点和边缘,显示每个客户购买的产品。我对Elasticsearch是否有能力感到困惑,或者我是否应该转移到纯图形数据库(如Neo4J和Elasticsearch)进行搜索。
答案 0 :(得分:0)
图表功能可以绘制这些连接,如果它们共享一个公共字段名称 - 节点的唯一标识是字段名称和术语。术语可以在不同的索引中,但只要它们共享一个公共字段名称,它们就被视为同一节点。 我不确定你要解决哪个业务问题(推荐?欺诈?)但是根据你想要实现的目标,你可能想要以不同的方式对事物进行建模。 如果你对推荐和购买X-also-buying-Y风格建议的人感兴趣,那么人们不太可能成为有趣的节点,你可以只检查“购买”字段,这将显示哪些产品显着共现。 对于更详细的“取证”类型应用程序,您可能只想拥有person->产品链接而不具有product->产品链接,在这种情况下,您将被迫创建更多经典的“边缘式”文档,只有2个节点 - 人员ID和产品ID。