Beside Google (Custom Search) and Amazon's (ElastiCache) services I prefer a custom service running on my own server based on filesystem.
It seems that Apache Lucene
is the best and most common.
It is available in java and .net. It is also in available in php in the form of a zend framework module.
Built on it there are Apache Solr
and
Elastic ElasticSearch
.
See solr vs elasticsearch
and stackoverflow
Here are some more (not evaluated!)
(and maybe Omega front end)
See docu
set JAVA_HOME=G:\lang\Solr\OpenJDK8u192-b12
./bin/solr start -e cloud
solr start|stop|restart|healthcheck|create|create_core|create_collection|delete|version|zk|auth|assert|config] solr start -c -m 1g -z localhost:2181 -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044" solr start -help > -h host|-p port|-d dir(server)|-m memory|-s dir(solr.solr.home)|-t dir(solr.data.home)|-v (verbose log)
files for your collection (-Dc) in folder example/exampledocs
Linux: solr-7.5.0:$ bin/post -c techproducts example/exampledocs/* Windows: java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar example\exampledocs\*