You could try
Recoll or Calibre.
Calibre does a good job of indexing metadata, and can serve its library to remote clients. It doesn't do full-text search natively, but
here is a plugin (which I haven't tried) intended to do just that, though it looks like it takes a bit of work to get it going.
The plugin uses Recoll, which - from a quick look at its home page - looks like it should be able to do the job on its own.