From d16095408034387fe48ba1bdaad6bfeba9e94e06 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Sun, 24 Sep 2023 19:35:40 +0200 Subject: [PATCH] (index) Two useful debug endpoints --- .../nu/marginalia/index/IndexService.java | 4 +++ .../index/svc/IndexQueryService.java | 25 +++++++++++++++++++ run/nginx-site.conf | 9 +++++++ 3 files changed, 38 insertions(+) diff --git a/code/services-core/index-service/src/main/java/nu/marginalia/index/IndexService.java b/code/services-core/index-service/src/main/java/nu/marginalia/index/IndexService.java index 7d3b0f85..86d6971a 100644 --- a/code/services-core/index-service/src/main/java/nu/marginalia/index/IndexService.java +++ b/code/services-core/index-service/src/main/java/nu/marginalia/index/IndexService.java @@ -60,6 +60,10 @@ public class IndexService extends Service { Spark.post("/search/", indexQueryService::search, gson::toJson); + Spark.get("/public/debug/docmeta", indexQueryService::debugEndpointDocMetadata, gson::toJson); + Spark.get("/public/debug/wordmeta", indexQueryService::debugEndpointWordMetadata, gson::toJson); + Spark.get("/public/debug/word", indexQueryService::debugEndpointWordEncoding, gson::toJson); + Spark.post("/ops/repartition", opsService::repartitionEndpoint); Spark.post("/ops/reindex", opsService::reindexEndpoint); diff --git a/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java b/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java index 8b42bbd2..5f16216d 100644 --- a/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java +++ b/code/services-core/index-service/src/main/java/nu/marginalia/index/svc/IndexQueryService.java @@ -24,6 +24,8 @@ import nu.marginalia.index.query.IndexQuery; import nu.marginalia.index.results.IndexResultDomainDeduplicator; import nu.marginalia.index.svc.searchset.SmallSearchSet; import nu.marginalia.model.gson.GsonFactory; +import nu.marginalia.model.idx.DocumentMetadata; +import nu.marginalia.model.idx.WordMetadata; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.Marker; @@ -71,6 +73,29 @@ public class IndexQueryService { this.metadataService = metadataService; this.searchTermsSvc = searchTerms; } + public DocumentMetadata debugEndpointDocMetadata(Request request, Response response) { + String docId = request.queryParams("docId"); + response.type("application/json"); + + return new DocumentMetadata(index.getDocumentMetadata(Long.parseLong(docId))); + } + + public WordMetadata debugEndpointWordMetadata(Request request, Response response) { + String word = request.queryParams("word"); + String docId = request.queryParams("docId"); + response.type("application/json"); + + return new WordMetadata(index.getTermMetadata( + searchTermsSvc.getWordId(word), + new long[] { Long.parseLong(docId) } + )[0]); + } + public String debugEndpointWordEncoding(Request request, Response response) { + String word = request.queryParams("word"); + response.type("application/json"); + + return Long.toHexString(searchTermsSvc.getWordId(word)); + } public Object search(Request request, Response response) { String json = request.body(); diff --git a/run/nginx-site.conf b/run/nginx-site.conf index 5a32bb1a..9965a728 100644 --- a/run/nginx-site.conf +++ b/run/nginx-site.conf @@ -29,6 +29,15 @@ server { location /site/ { rewrite ^/site/(.*)$ /search?query=site:$1&profile=yolo; } + location /debug/wordmeta { + proxy_pass http://index-service:5021/public/debug/wordmeta; + } + location /debug/docmeta { + proxy_pass http://index-service:5021/public/debug/docmeta; + } + location /debug/word { + proxy_pass http://index-service:5021/public/debug/word; + } location /suggest/ { proxy_pass http://assistant-service:5025/public$request_uri; access_log off;