Experimental domain-searching feature

This commit is contained in:
vlofgren 2022-07-28 21:09:45 +02:00
parent ffb7668c99
commit 8428198e61
2 changed files with 14 additions and 2 deletions

View File

@ -277,7 +277,7 @@ public class EdgeDataStoreDaoImpl implements EdgeDataStoreDao {
// this is safe, string concatenation 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 EC_URL_VIEW.ID IN " + inStmt + " ORDER BY RANK ASC");
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 QUALITY>-10 AND EC_URL_VIEW.ID IN " + inStmt + " ORDER BY (KNOWN_URLS<1000) ASC, (KNOWN_URLS<2000) ASC");
while (rsp.next()) {
int id = rsp.getInt(1);
String domain = rsp.getString(2);

View File

@ -135,8 +135,20 @@ public class EdgeSearchOperator {
Set<EdgeId<EdgeUrl>> results = new LinkedHashSet<>();
List<Iterator<EdgeId<EdgeUrl>>> iters = new ArrayList<>();
for (var result : indexClient.queryDomains(ctx, requests)) {
results.addAll(result.results);
iters.add(result.results.iterator());
}
while (!iters.isEmpty()) {
iters.removeIf(iter -> {
if (!iter.hasNext()) return true;
else {
results.add(iter.next());
return false;
}
});
}
return edgeDataStoreDao.getBrowseResultFromUrlIds(new ArrayList<>(results));