Decision
After researching the major players, I came to some conclusions.
- Elastic search was very complex to setup.
- Solr was also very complex and didn’t seem quite right.
- Nutch is a wrapper around Solr, specifically to crawl websites, but I couldn’t get it to work well on my site.
- OpenSearch also complex to setup.
- TypeSense had promise, but it’s official web crawler had some problems.
Ultimately, I decided on Meilisearch.
It had a number of client libraries (specifically Java & PHP) so I could write applications to interact with it in languages I was familiar with.
Additionally, it could be deployed as a docker container, which means it was entirely self contained.
Implementation
Installation
Since Meilisearch can run in a docker instance, I Installed it on one of my local linux machines running docker.
I also created a new AWS Lightsail instance with docker and installed the same Meilisearch container.
As I mentioned above, my Lightsail instances are kind of CPU and IO restricted. So my plan was to index the content on my local machine, backup the database, and upload it to the Lightsail instance,
Since this is running in docker, I can be confident that the software will be compatible between various systems.