An implementation of an advanced movie search engine, using TMDB's data & Lucene's indexing.
This is the core of a simple Movie Database implentation. It downloads data (Movies, Reviews, Actors & Characters, etc.) from TMDB, in JSON Format, then parses them and finally stores them into a local indexes (one index per table). Internet connection is required, in order to download the data, when the app runs for the first time in a device. The user has the option to update & re-create the indexes everytime the app is restarted.
Parallel streams and parallel executors, are used in order to download the data from TMDB very fast.
The JsonIter library is one of the fastest Json libraries available in Java. It outperforms traditional Json parsing libraries, such as Google's GSon and many other libraries.
Lucene is one of the fastest indexers in Java. Lucene is the core of elasticsearch
library. Lucene's job is:
- Add downloaded documents to their indexes.
- Search documents.
- Highlight documents.
The code is implemented using popular design patterns in java, according to the book "Head First Design Patterns" https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
Every part of the project is written in such a way that software engineers can easily add extensions.
In order to run the engine, You will need to download the following libraries:
- JsonIter (0.9.23)
- Lucene Core (9.3.0)
- Junit 5
- Add a Graphical User Interface (GUI)
- Create a server-client architecure and send queries as requests.