mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 21:18:58 +00:00
![]() 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 |
Search Service
This service handles search traffic and is the service you're most directly interacting with when visiting search.marginalia.nu.
It interprets a "human" query and translates it into a request that gets passed into to the index service, which finds related documents, which this service then ranks and returns to the user.
Central classes
-
SearchService receives requests and delegates to the appropriate services.
-
CommandEvaluator interprets a user query and acts upon it, dealing with special operations like
browse:
orsite:
. -
SearchQueryIndexService passes a parsed search query to the index service, and then decorates the search results so that they can be rendered.