I illustrate my question with an example. Assume having a type named "post". Each post has a userid field which indicates its author. This is how the post is stored:
"text": "user 1 message",
Is there a way to extract the relationship between the users based on the co-occurrence of terms within the "text" field of posts which they have authored? For example, if there are two posts containing the word "elastic", what I would like to see is an edge between the posts' authors.
This demo is based on stack overflow posts and graphs the tags and people involved in them: https://m.youtube.com/watch?v=1QwmJ_FCMqU&feature=youtu.be
I watched the video but my question still remains.
In the stack overflow case for example, is this hypothetical graph achievable?
"A graph where the vertices stand for (just) the user names and a relationship between any two nodes summarizes the number of common tags they have contributed to"
I watched the video but my question still remains
Let's assume then that all tags are equally interesting so you want to remove them from being visible in your graph in the way you describe. The important points to remember is that in elastic Graph the vertices are always terms and the edges represent one or more docs. Clicking on an edge will show how many docs a pair of terms have in common. To present the model you describe you'd need tag-centric docs e.g.
There are a few of concerns with this approach:
- You probably need to write code to re-orient your source data in this fashion (see "entity centric indexing")
- The interesting (rare) tags will not be emphasised (2 people sharing a rare topic counts for the same as 2 people sharing a common one)
- The specialisms a person has (repeated posts tagged with neo4j) will not be emphasised in this model.
So you can do it this way, but I'm not sure it makes sense.