Does anyone have experience tracking documents that a user "liked" /
"disliked" and then incorporating that into a MoreLikeThis query?

The idea would be to exclude any document a user disliked from ever
returning as a similar document, and to boost any document a user liked so
it shows up higher in the similar documents.

The biggest question seems to be how and where to store the
likes/dislikes...

- A multi-valued field on each document that stores the usernames of who
liked it (same for dislikes). This will cause a lot of updates to this
document, and the document can be fairly large with a lot of stored fields.

- A nested child document that stores the user, whether it was a like or
dislike, and any other necessary information, and then somehow using
block-join. If I'm correct this still requires updating the whole block
when a new child document is inserted.

- A separate solr document that stores the same information as the nested
child would, but would have to be joined together at query time. Not sure
of the performance impact here.

- Store the likes/dislikes completely outside Solr and somehow pass this
information in to a query, not sure if this is feasible if there are
thousands of likes and dislikes for a single user.

Any thoughts or best practices for implementing something like this would
be appreciated.

Thanks,

Bryan

Reply via email to