mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 21:18:58 +00:00
(search) Filter blacklisted items in API query service as well
This commit is contained in:
parent
235bb6c1b9
commit
9e0367eef4
@ -3,6 +3,7 @@ package nu.marginalia.search.svc;
|
|||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
import nu.marginalia.db.DomainBlacklist;
|
||||||
import nu.marginalia.index.client.model.results.SearchResultKeywordScore;
|
import nu.marginalia.index.client.model.results.SearchResultKeywordScore;
|
||||||
import nu.marginalia.search.client.model.ApiSearchResultQueryDetails;
|
import nu.marginalia.search.client.model.ApiSearchResultQueryDetails;
|
||||||
import nu.marginalia.model.idx.WordMetadata;
|
import nu.marginalia.model.idx.WordMetadata;
|
||||||
@ -24,10 +25,15 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
public class SearchApiQueryService {
|
public class SearchApiQueryService {
|
||||||
private SearchOperator searchOperator;
|
private SearchOperator searchOperator;
|
||||||
|
private final DomainBlacklist blacklist;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SearchApiQueryService(SearchOperator searchOperator) {
|
public SearchApiQueryService(
|
||||||
|
SearchOperator searchOperator,
|
||||||
|
DomainBlacklist blacklist
|
||||||
|
) {
|
||||||
this.searchOperator = searchOperator;
|
this.searchOperator = searchOperator;
|
||||||
|
this.blacklist = blacklist;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@ -58,6 +64,8 @@ public class SearchApiQueryService {
|
|||||||
|
|
||||||
var results = searchOperator.doApiSearch(ctx, new UserSearchParameters(humanQuery, profile, SearchJsParameter.DEFAULT));
|
var results = searchOperator.doApiSearch(ctx, new UserSearchParameters(humanQuery, profile, SearchJsParameter.DEFAULT));
|
||||||
|
|
||||||
|
results.removeIf(details -> blacklist.isBlacklisted(details.domainId));
|
||||||
|
|
||||||
return new ApiSearchResults("RESTRICTED", humanQuery, results.stream().map(this::convert).limit(limit).collect(Collectors.toList()));
|
return new ApiSearchResults("RESTRICTED", humanQuery, results.stream().map(this::convert).limit(limit).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user