8ef34883a8
This reduces the impact of restarting the search service, as the site information takes a few minutes to load during which it's not available. It also permits exposing this information via API in the future if there is interest in this. The assistant service was also modified to do a late load of the suggestions trie, as this is a major contributor to its start-up time. Finally, some changes were made to the client library, a new get() method was added that takes a TypeToken to allow deserialization of generics such as List<Foo>, and the scheduler was also modified to use virtual threads. |
||
---|---|---|
.. | ||
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.