diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDao.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDao.java index 5bc65659..b5914193 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDao.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDao.java @@ -18,7 +18,7 @@ public interface EdgeDataStoreDao { List getRandomDomains(int count, EdgeDomainBlacklist backlist); - List getBrowseResultFromUrlIds(List> urlId); + List getBrowseResultFromUrlIds(List> urlId, int count); List getUrlDetailsMulti(List> ids); diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDaoImpl.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDaoImpl.java index 940478d4..79ed9ecd 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDaoImpl.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/data/dao/EdgeDataStoreDaoImpl.java @@ -266,7 +266,7 @@ public class EdgeDataStoreDaoImpl implements EdgeDataStoreDao { } @Override - public List getBrowseResultFromUrlIds(List> urlId) { + public List getBrowseResultFromUrlIds(List> urlId, int count) { if (urlId.isEmpty()) return Collections.emptyList(); @@ -277,8 +277,8 @@ public class EdgeDataStoreDaoImpl implements EdgeDataStoreDao { // this is safe, string cocatenation is of integers String inStmt = urlId.stream().map(id -> Integer.toString(id.id())).collect(Collectors.joining(", ", "(", ")")); - var rsp = stmt.executeQuery("SELECT DOMAIN_ID, DOMAIN_NAME FROM EC_URL_VIEW WHERE QUALITY>-10 AND ID IN " + inStmt); - while (rsp.next()) { + var rsp = stmt.executeQuery("SELECT DOMAIN_ID, DOMAIN_NAME FROM EC_URL_VIEW INNER JOIN DOMAIN_METADATA ON EC_URL_VIEW.DOMAIN_ID=DOMAIN_METADATA.ID WHERE VISITED_URLS<500 AND QUALITY>-10 AND ID IN " + inStmt); + while (rsp.next() && ret.size() < count) { int id = rsp.getInt(1); String domain = rsp.getString(2); diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/EdgeSearchOperator.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/EdgeSearchOperator.java index c818701b..008c82a1 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/EdgeSearchOperator.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/search/EdgeSearchOperator.java @@ -116,10 +116,10 @@ public class EdgeSearchOperator { .findFirst().map(sq -> sq.searchTermsInclude).orElseGet(Collections::emptyList); if (keywords.size() == 1) { - var request = new EdgeDomainSearchSpecification(specs.buckets.get(0), IndexBlock.Topic, keywords.get(0), 1_000_000, 5, 10); + var request = new EdgeDomainSearchSpecification(specs.buckets.get(0), IndexBlock.TitleKeywords, keywords.get(0), 1_000_000, 10, 20); var response = indexClient.queryDomains(ctx, request); - return edgeDataStoreDao.getBrowseResultFromUrlIds(response.results); + return edgeDataStoreDao.getBrowseResultFromUrlIds(response.results, 5); } return Collections.emptyList();