Spotlight with Elasticsearch Backend
Using Elasticsearch as search engine, is the recommended setup for any deployment.
You have to install the following components:
Recently an alternative to fscrawler for indexing has evolved;
This is a small Python programm with low-overhead that will only index filesystem metadata, not file content.
Elasticsearch doesn't need any specific configuration to work with Samba, once it's installed and up and running, you're ready to index your filesystems with fscrawler.
You have to set a few global options to tell Samba how to connect to Elasticsearch and you have to enable Spotlight on a per share basis.
[global] spotlight backend = elasticsearch elasticsearch:address = localhost elasticsearch:port = 9200
[share] ... spotlight = yes
See the smb.conf manpage for detailed explanation of all available parameters.
There's a handy commandline tool that works as Spotlight client: mdfind. See the manpage of mdfind for usage details.