The equivalent to different indexes in ES is to have different schemas:
Each schema in a content cluster gets its own indexes and other data structures.
Note that (as in ES) this isn't perfect isolation:
- It's on you to make sure each of your tenants can only query their own schema(s).
- You don't have resource isolation so one tenant may consumer so much memory or cpu that it impacts others.
- You're not providing each tenant with the full expressive power of an application package (which is much more than in ES), while retaining isolation.
You can achieve all of these of course by setting up different Vespa system instances for each tenant, at the cost of additional administration overhead and running different (e.g Docker) containers for each.
In principle you can also create a single system hosting multiple applications, where each application runs on different Docker containers and is therefore fully isolated. This is what Vespa Cloud does, but it's a lot more work and not documented.