I have an application in the works which needs to work in following manner:
- When App User sets a filter and the app returns a set of quotes.
- Then user can like or dislike that "quote"
- The liked or disliked quote is never shown to this user again
The app behaves much like tinder. What I see as a potential bottle neck to this problem using elasticsearch is the fact that changes to a record in ES is not immediate .
So lets suppose if I selected a user with following filters (Male and location from London) and one of the qualifying candidate changes their Quotes or location - the change will not be immediate on ES and it will lead to wrong displaying of selected Data from ES.
I have considered app level joins, which can be huge array of 0 - 20K+ Integer numbers (IDs) which the user has already viewed just in order to make sure that the quotes being returned are always unique.
The current POC uses postgres with nodejs.