0307c55f9f
To avoid having to either hard-code or manually configure service addresses (possibly several dozen), and to reduce the project's dependency on docker to deal with routing and discovery, the option to use [Zookeeper](https://zookeeper.apache.org/) to manage services and discovery has been added. A service registry interface was added, with a Zookeeper implementation and a basic implementation that only works on docker and hard-codes everything. The last remaining REST service, the assistant-service, has been migrated to gRPC. This also proved a good time to clear out primordial technical debt from the root of the codebase. The 'service-client' library has been taken behind the barn and given a last farewell. It's replaced by a small library for managing gRPC channels. Since it's no longer used by anything, RxJava has been removed as a dependency from the project. Although the current state seems reasonably stable, this is a work-in-progress commit. |
||
---|---|---|
.. | ||
src | ||
build.gradle | ||
readme.md |
The index service is a partitioned service that knows which document contains which keywords.
It is the service that most directly executes a search query. It does this by evaluating a low-level query, and then using the index to find the documents that match the query, finally ranking the results and picking the best matches.
Central Classes
- IndexService is the REST entry point that the internal API talks to.
- IndexQueryService executes queries.
- SearchIndex owns the state of the index and helps with building a query strategy from parameters.
- IndexResultValuator determines the best results.
See Also
The index service relies heavily on the primitives in features-index: