Graph: user defined edges


The Graph ( looks like a great tool. Is there a way to specify the edges instead of having Elastic figure it out? It looks like Elastic figures out the edges based on concurrences in document (and probably other machine learning that I don't know). However, is it possible to have some sort of schema that this Kibana X-Pack Graph will pickup when rendering the nodes and edges? Thank you.


If you want to take control over relationships it's a matter of creating documents that look more like classic "edge" records with just a single pair of terms to represent nodes e.g. the fact we are connected by this forum post might look like this:

  "node_ids":["@Mark_Harwood", "@jdpark"]

You could throw any number of connections together this way e.g.

  "node_ids":["@Mark_Harwood", "#elasticsearch"]

Obviously being regular Elasticsearch docs you could add other fields here e.g. dates to query and filter the relationships you choose to render as a graph.

Thanks Mark.

For future readers doing something similar, I changed the "certainty" setting to 1 while doing proof of concept. (I was wondering why nodes weren't coming up.) I also found Kibana's "last query" feature very handy to see what Graph API is doing. In general I found the following blogs helpful (one of them is written by Mark).

You might also find this talk from this year's elasticon useful: Getting Your Elasticsearch Data Graph-Ready | Elastic

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.