![]() Before the gRPC migration, the system would serve both public and internal requests over HTTP, but distinguish the two using path prefixes and a few HTTP Headers (X-Public, X-Context) added by the reverse proxy to prevent misconfigurations. Since internal requests meaningfully no longer use HTTP, this convention is just an obstacle now, adding the need to always run the system behind a reverse proxy that rewrites the paths. The change removes the path prefix, and updates the docker templates to reflect the change. This will require a migration for existing systems. |
||
---|---|---|
.. | ||
java/nu/marginalia/query | ||
resources | ||
build.gradle | ||
readme.md |
The query service parses search queries and delegates work to the index services.
The index-service speaks a lower level query specification language that is difficult to build an application out of. The query service exists as an interpreter to that format.
Web Interface
The query service also offers a basic web interface for testing queries, or
running the search engine as a white-label service without all the Marginalia Search
specific stuff. This mode of operations is available through a barebones
install.
The web interface also offers a JSON API for machine-based queries.
Central Classes
This module is almost entirely boilerplate, except the QueryBasicInterface class, which offers a REST API for querying the index.
Much of the guts of the query service are in the query-service module; which offers query parsing and an interface to the index service partitions.