From 7bbaedef97c731e1987c2693dbbbed1490ae8584 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Wed, 3 Jan 2024 16:23:00 +0100 Subject: [PATCH] (search) Add query strategy requiring link --- .../java/nu/marginalia/index/query/limit/QueryStrategy.java | 1 + .../java/nu/marginalia/index/results/IndexResultValuator.java | 4 +++- .../java/nu/marginalia/query/svc/QueryLimitsAccumulator.java | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/code/features-index/index-query/src/main/java/nu/marginalia/index/query/limit/QueryStrategy.java b/code/features-index/index-query/src/main/java/nu/marginalia/index/query/limit/QueryStrategy.java index c15ab6ea..024828f9 100644 --- a/code/features-index/index-query/src/main/java/nu/marginalia/index/query/limit/QueryStrategy.java +++ b/code/features-index/index-query/src/main/java/nu/marginalia/index/query/limit/QueryStrategy.java @@ -9,6 +9,7 @@ public enum QueryStrategy { REQUIRE_FIELD_SUBJECT, REQUIRE_FIELD_URL, REQUIRE_FIELD_DOMAIN, + REQUIRE_FIELD_LINK, AUTO } diff --git a/code/services-core/index-service/src/main/java/nu/marginalia/index/results/IndexResultValuator.java b/code/services-core/index-service/src/main/java/nu/marginalia/index/results/IndexResultValuator.java index e19d3809..1e51fbd6 100644 --- a/code/services-core/index-service/src/main/java/nu/marginalia/index/results/IndexResultValuator.java +++ b/code/services-core/index-service/src/main/java/nu/marginalia/index/results/IndexResultValuator.java @@ -172,7 +172,9 @@ public class IndexResultValuator { else if (queryStrategy == QueryStrategy.REQUIRE_FIELD_DOMAIN) { return WordMetadata.hasFlags(termScore.encodedWordMetadata(), WordFlags.UrlDomain.asBit()); } - + else if (queryStrategy == QueryStrategy.REQUIRE_FIELD_LINK) { + return WordMetadata.hasFlags(termScore.encodedWordMetadata(), WordFlags.ExternalLink.asBit()); + } return true; } diff --git a/code/services-core/query-service/src/main/java/nu/marginalia/query/svc/QueryLimitsAccumulator.java b/code/services-core/query-service/src/main/java/nu/marginalia/query/svc/QueryLimitsAccumulator.java index 663d4cfc..f1f17bed 100644 --- a/code/services-core/query-service/src/main/java/nu/marginalia/query/svc/QueryLimitsAccumulator.java +++ b/code/services-core/query-service/src/main/java/nu/marginalia/query/svc/QueryLimitsAccumulator.java @@ -45,6 +45,7 @@ public class QueryLimitsAccumulator implements TokenVisitor { case "RF_SITE" -> QueryStrategy.REQUIRE_FIELD_SITE; case "RF_URL" -> QueryStrategy.REQUIRE_FIELD_URL; case "RF_DOMAIN" -> QueryStrategy.REQUIRE_FIELD_DOMAIN; + case "RF_LINK" -> QueryStrategy.REQUIRE_FIELD_LINK; case "SENTENCE" -> QueryStrategy.SENTENCE; case "TOPIC" -> QueryStrategy.TOPIC; default -> QueryStrategy.AUTO;