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;