diff --git a/code/common/db/java/nu/marginalia/db/DbDomainQueries.java b/code/common/db/java/nu/marginalia/db/DbDomainQueries.java index a3dfaf1f..e9a0f328 100644 --- a/code/common/db/java/nu/marginalia/db/DbDomainQueries.java +++ b/code/common/db/java/nu/marginalia/db/DbDomainQueries.java @@ -103,11 +103,11 @@ public class DbDomainQueries { } } - public List otherSubdomains(EdgeDomain domain, int cnt) { - List ret = new ArrayList<>(); + public List otherSubdomains(EdgeDomain domain, int cnt) { + List ret = new ArrayList<>(); try (var conn = dataSource.getConnection(); - var stmt = conn.prepareStatement("SELECT DOMAIN_NAME FROM EC_DOMAIN WHERE DOMAIN_TOP = ? LIMIT ?")) { + var stmt = conn.prepareStatement("SELECT DOMAIN_NAME, NODE_AFFINITY FROM EC_DOMAIN WHERE DOMAIN_TOP = ? LIMIT ?")) { stmt.setString(1, domain.topDomain); stmt.setInt(2, cnt); @@ -118,7 +118,7 @@ public class DbDomainQueries { if (sibling.equals(domain)) continue; - ret.add(sibling); + ret.add(new DomainWithNode(sibling, rs.getInt(2))); } } catch (SQLException e) { logger.error("Failed to get domain neighbors"); @@ -126,4 +126,10 @@ public class DbDomainQueries { return ret; } + + public record DomainWithNode (EdgeDomain domain, int nodeAffinity) { + public boolean isIndexed() { + return nodeAffinity > 0; + } + } } diff --git a/code/functions/search-query/api/java/nu/marginalia/api/searchquery/model/results/ResultRankingParameters.java b/code/functions/search-query/api/java/nu/marginalia/api/searchquery/model/results/ResultRankingParameters.java index 537b94cb..01d276d9 100644 --- a/code/functions/search-query/api/java/nu/marginalia/api/searchquery/model/results/ResultRankingParameters.java +++ b/code/functions/search-query/api/java/nu/marginalia/api/searchquery/model/results/ResultRankingParameters.java @@ -67,8 +67,7 @@ public class ResultRankingParameters { this.exportDebugData = exportDebugData; } - public static ResultRankingParameters sensibleDefaults() { - return builder() + private static final ResultRankingParameters _sensibleDefaults = builder() .bm25Params(new Bm25Parameters(1.2, 0.5)) .shortDocumentThreshold(2000) .shortDocumentPenalty(2.) @@ -85,6 +84,9 @@ public class ResultRankingParameters { .exportDebugData(false) .disablePenalties(false) .build(); + + public static ResultRankingParameters sensibleDefaults() { + return _sensibleDefaults; } public static ResultRankingParametersBuilder builder() { diff --git a/code/services-application/search-service/java/nu/marginalia/search/svc/SearchSiteInfoService.java b/code/services-application/search-service/java/nu/marginalia/search/svc/SearchSiteInfoService.java index 9db006cf..8f92af71 100644 --- a/code/services-application/search-service/java/nu/marginalia/search/svc/SearchSiteInfoService.java +++ b/code/services-application/search-service/java/nu/marginalia/search/svc/SearchSiteInfoService.java @@ -352,7 +352,7 @@ public class SearchSiteInfoService { public record SiteInfoWithContext(String domain, boolean isSubscribed, - List siblingDomains, + List siblingDomains, int domainId, String siteUrl, boolean hasScreenshot, diff --git a/code/services-application/search-service/resources/jte/siteinfo/view/overview.jte b/code/services-application/search-service/resources/jte/siteinfo/view/overview.jte index 15cf5199..91e84a12 100644 --- a/code/services-application/search-service/resources/jte/siteinfo/view/overview.jte +++ b/code/services-application/search-service/resources/jte/siteinfo/view/overview.jte @@ -1,3 +1,4 @@ +@import nu.marginalia.db.DbDomainQueries @import nu.marginalia.model.EdgeDomain @import nu.marginalia.search.svc.SearchSiteInfoService @import nu.marginalia.search.svc.SearchSiteInfoService.* @@ -94,10 +95,14 @@ - @for (EdgeDomain sibling : siteInfo.siblingDomains()) + @for (DbDomainQueries.DomainWithNode sibling : siteInfo.siblingDomains()) - ${sibling.toString()} + ${sibling.domain().toString()} + + @if (!sibling.isIndexed()) + + @endif @endfor diff --git a/code/services-application/search-service/test/nu/marginalia/search/rendering/MockedSearchResults.java b/code/services-application/search-service/test/nu/marginalia/search/rendering/MockedSearchResults.java index 9c65799f..294885dc 100644 --- a/code/services-application/search-service/test/nu/marginalia/search/rendering/MockedSearchResults.java +++ b/code/services-application/search-service/test/nu/marginalia/search/rendering/MockedSearchResults.java @@ -6,6 +6,7 @@ import nu.marginalia.api.domains.model.SimilarDomain; import nu.marginalia.api.searchquery.model.results.SearchResultItem; import nu.marginalia.browse.model.BrowseResult; import nu.marginalia.browse.model.BrowseResultSet; +import nu.marginalia.db.DbDomainQueries; import nu.marginalia.model.EdgeDomain; import nu.marginalia.model.EdgeUrl; import nu.marginalia.model.crawl.DomainIndexingState; @@ -132,8 +133,9 @@ public class MockedSearchResults { return new SearchSiteInfoService.SiteInfoWithContext( "www.example.com", false, - List.of(new EdgeDomain("example.com"), - new EdgeDomain("about.example.com") + List.of( + new DbDomainQueries.DomainWithNode(new EdgeDomain("example.com"), 1), + new DbDomainQueries.DomainWithNode(new EdgeDomain("example.com"), 0) ), 14, "https://www.example.com",