Attention: This project has been extended and is available at https://github.com/valerieJJ/JJCloud
This is a web system for movie recommendation based on a movie dataset(including movies and user behaviours)
The movie data used in this project is a subset adopted from a public movie dataset MovieLen
It is mainly developed in java, html, and the techniques includes the usage of thymleaf, spring-boot, redis, mongodb, elasticsearch. Besides, multi-threading is also applied for accelerating processing speed in some business. I tried my best to obey the rules of the restful。
The demos for operating data on HBase and offline recommendation algorithm are accessible in this site https://github.com/valerieJJ/RecSys
(mainly wrote in spark-scala).
I am still working on functional refinements and improvements, even though I am busy with my academic paper at the same time.
As for environment, you can use the default jvm like this:
but I would prefer the following refined JVM settings:
-Xms4096M -Xmx4096M -Xmn3072M -Xss1M -XX:PermSize=256M -XX:MaxPermSize=256M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFaction=92 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0
Useful Tool: MongoDB - Robo
start server:
jj@master ~ % mongod --dbpath /usr/local/Cellar/data/db
start server:
jj@master ~ % elasticsearch
(It has already been added to my system environment variables)
Here it is applied to improve the speed of searching movies in various ways.
It will return the movie ID retrieved based on the content, based on which you can further check the MongoDB table to get more information.
I am considering extending this project to spring-cloud based on zookeeper
Here are some system showcases: Note: To save storage space, I didn't download all the poster images for each movie. Instead, I used the same images as general movie posters.
![image-20220316094252015](/Users/jj/Library/Application Support/typora-user-images/image-20220316094252015.png)
![piccc](/Users/jj/Pictures/piccc.png)