mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
Merge pull request 'Experimental domain-searching feature' (#67) from master into release
Reviewed-on: https://git.marginalia.nu/marginalia/marginalia.nu/pulls/67
This commit is contained in:
commit
29efdf944d
@ -277,7 +277,7 @@ public class EdgeDataStoreDaoImpl implements EdgeDataStoreDao {
|
|||||||
// this is safe, string concatenation is of integers
|
// this is safe, string concatenation is of integers
|
||||||
String inStmt = urlId.stream().map(id -> Integer.toString(id.id())).collect(Collectors.joining(", ", "(", ")"));
|
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()) {
|
while (rsp.next()) {
|
||||||
int id = rsp.getInt(1);
|
int id = rsp.getInt(1);
|
||||||
String domain = rsp.getString(2);
|
String domain = rsp.getString(2);
|
||||||
|
@ -135,8 +135,20 @@ public class EdgeSearchOperator {
|
|||||||
|
|
||||||
Set<EdgeId<EdgeUrl>> results = new LinkedHashSet<>();
|
Set<EdgeId<EdgeUrl>> results = new LinkedHashSet<>();
|
||||||
|
|
||||||
|
List<Iterator<EdgeId<EdgeUrl>>> iters = new ArrayList<>();
|
||||||
|
|
||||||
for (var result : indexClient.queryDomains(ctx, requests)) {
|
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));
|
return edgeDataStoreDao.getBrowseResultFromUrlIds(new ArrayList<>(results));
|
||||||
|
Loading…
Reference in New Issue
Block a user