An entity will have 5 attributes:
- type: posting
- ID: ID of the job posting
- timestamp: unix timestamp (in milliseconds) that specifies when the job posting was published
- properties of the job posting (JSON-formatted)
- links to entities: empty JSON object
A relationship has the following attributes:
- types: impression, click, bookmark, rating
- ID: auto-incremented ID that can be used to bring the relationships into a temporal order
- timestamp: unix timestamp (in milliseconds) that specifies when the impression or interaction happened
- context info about the impression/interaction, e.g. in which section was the impression (JSON-formatted)
- entities:
- user ID: ID of the user who performed the interaction or to whom the posting was shown
- item ID: ID of the job posting on which the interaction was performed or that was shown
Postings:
posting 42 1404165599468 {"title": "Experienced Java Developer (J2EE)", "discipline": 1011, "industry": 20100, "city": "Frankfurt"} {}
posting 70 1404165654321 {"title": "Software Engineer (Scala)", "discipline": 1012, "industry": 20100, "city": null} {}
Relationships - Version A (plain array):
impression 1 1404166899123 {"section": "jobs", "source": "recommendations"} {"postings": [42, 17, 87], "user": 4320245}
click 2 1404166987162 {"section": "jobs", "source": "recommendations"} {"posting": 17, "user": 4320245}
rating 3 140416696511 {"rating": 4} {"posting": 187, "user": 4320245}
Relationships - Version B (more complex recommendations):
impression 1 1404166899123 {"section": "jobs", "source": "recommendations"} {"postings": [{"id": 42, "score": 0.67, "reasons": ["mlt", "cf", "haves"]}, {"id": 17, "score": 0.51, "reasons": []}, {"id": 87, "score": 0.14, "reasons": ["cf"]}], "user": 4320245}
...