MarginaliaSearch/code/services-core/query-service
Viktor Lofgren 4772e0b59d (service) Deprecate /public prefix on HTTP
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.
2024-04-30 14:46:18 +02:00
..
java/nu/marginalia/query (service) Deprecate /public prefix on HTTP 2024-04-30 14:46:18 +02:00
resources (qs) Additional info in query debug UI 2024-04-24 14:44:39 +02:00
build.gradle (build) Java 22 and its consequences has been a disaster for Marginalia Search 2024-04-24 14:44:39 +02:00
readme.md (docs) Begin un-fucking the docs after refactoring 2024-02-27 21:22:21 +01:00

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.