mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 13:09:00 +00:00
Experimental domain-searching feature
This commit is contained in:
parent
ffb7668c99
commit
8428198e61
@ -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);
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user