Hey,
we also discussed this at today's technical meeting and I vaguely
remember this to be a deliberate choice from me back when I started on
the prototype. But since it has been over two years… it may be good to
verify my memories ;-)
Since then, there also have been a few changes to the other OpenSearch
parts which may or may not change stuff.
I deliberately chose to not use the index service for a few reasons.
- First, no one likes the index service ;-p
- Second, replicating/using the way the index service works for the
search service would have meant a lot more code and a structure which
is less flexible than what we have now.
- Third, and most important, the index service depends on the asset
manager, the scheduler, the series service, the capture admin
service, … None of these are available on the presentation node where
the search service would live. Porting that would cause a big
dependency mess.
In the end, just using the client library to connect to a search index
was much simpler, caused less of a dependency hell and it also meant
that the search service could better act as a self-contained micro
service which could just run on any distribution we want it to.
That being said, we could look into unifying the index creation
process. Maybe something like the opencast-db module. We have the three
elasticsearch-* modules which Katrin extracted from the index service,
but they still contain a lot of code and dependencies unnecessary for
the search service.
Still, maybe it's worth investigating sharing that code a bit more.
Best regards,
Lars