2017-08-11 22 views
0

我有product类型的数据加载到Elasticsearch包含catalogue_numbername。我也有customer数据加载到Elasticsearch包含namepurchases(其中购买是一个产品编号数组)。Elasticsearch X-Pack是否能够跨不同类型返回图顶点?

例如:

CATALOGUE_NUMBER, NAME 
518, "Toilet Paper" 
388, "Candy Bar" 
263, "Carrots" 

而且,为客户提供:

NAME, PURCHASES 
"Jack", [518, 388] 
"John", [263] 
"Bill", [263, 518] 

考虑的关系是多对一(即客户购买的许多项目),我能够用Kibana查看将购买与特定客户关联起来,还是超出了范围?

我的最终目标是将图形显示为productcustomer作为显示每个客户购买哪些产品的顶点和边缘。我对Elasticsearch是否有能力,或者是否应该转向纯图数据库(如Neo4J和Elasticsearch)进行搜索非常困惑。

回答

0

如果图形特征共享公共字段名称,则可以绘制这些连接 - 节点的唯一标识是字段名称和术语。术语可以在不同的索引中,但只要它们共享一个共同的字段名称,它们就被视为同一个节点。 我不确定你想要解决哪个业务问题(建议?诈骗?),但取决于你试图达到的目标,你可能想要以不同方式对事物建模。 如果您对建议和人们购买了X还购买了Y型建议感兴趣,那么人们不太可能成为有趣的节点来绘图,您可以检查“购买”字段,它将绘制出哪些产品显着共同发生。 对于更详细的“法医”类型的应用程序,您可能希望仅拥有人员 - >产品链接,并且没有产品 - >产品链接,在这种情况下,您将被迫创建仅具有2个节点的更经典的“边缘”人员ID和产品ID。