mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
(improvement)(chat) Add queryFilters setting to queryContext. (#601)
This commit is contained in:
@@ -19,6 +19,7 @@ import org.springframework.util.CollectionUtils;
|
||||
|
||||
@Slf4j
|
||||
public class QueryFilterMapper implements SchemaMapper {
|
||||
|
||||
private double similarity = 1.0;
|
||||
|
||||
@Override
|
||||
@@ -35,7 +36,7 @@ public class QueryFilterMapper implements SchemaMapper {
|
||||
schemaElementMatches = Lists.newArrayList();
|
||||
schemaMapInfo.setMatchedElements(modelId, schemaElementMatches);
|
||||
}
|
||||
addValueSchemaElementMatch(queryContext, schemaElementMatches, queryReq.getQueryFilters());
|
||||
addValueSchemaElementMatch(queryContext, schemaElementMatches);
|
||||
}
|
||||
|
||||
private void clearOtherSchemaElementMatch(Long modelId, SchemaMapInfo schemaMapInfo) {
|
||||
@@ -47,12 +48,12 @@ public class QueryFilterMapper implements SchemaMapper {
|
||||
}
|
||||
|
||||
private List<SchemaElementMatch> addValueSchemaElementMatch(QueryContext queryContext,
|
||||
List<SchemaElementMatch> candidateElementMatches,
|
||||
QueryFilters queryFilter) {
|
||||
if (queryFilter == null || CollectionUtils.isEmpty(queryFilter.getFilters())) {
|
||||
List<SchemaElementMatch> candidateElementMatches) {
|
||||
QueryFilters queryFilters = queryContext.getQueryFilters();
|
||||
if (queryFilters == null || CollectionUtils.isEmpty(queryFilters.getFilters())) {
|
||||
return candidateElementMatches;
|
||||
}
|
||||
for (QueryFilter filter : queryFilter.getFilters()) {
|
||||
for (QueryFilter filter : queryFilters.getFilters()) {
|
||||
if (checkExistSameValueSchemaElementMatch(filter, candidateElementMatches)) {
|
||||
continue;
|
||||
}
|
||||
@@ -76,7 +77,7 @@ public class QueryFilterMapper implements SchemaMapper {
|
||||
}
|
||||
|
||||
private boolean checkExistSameValueSchemaElementMatch(QueryFilter queryFilter,
|
||||
List<SchemaElementMatch> schemaElementMatches) {
|
||||
List<SchemaElementMatch> schemaElementMatches) {
|
||||
List<SchemaElementMatch> valueSchemaElements = schemaElementMatches.stream().filter(schemaElementMatch ->
|
||||
SchemaElementType.VALUE.equals(schemaElementMatch.getElement().getType()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@@ -196,6 +196,7 @@ public class QueryServiceImpl implements QueryService {
|
||||
Map<String, Plugin> nameToPlugin = pluginService.getNameToPlugin();
|
||||
QueryContext queryCtx = QueryContext.builder()
|
||||
.request(queryReq)
|
||||
.queryFilters(queryReq.getQueryFilters())
|
||||
.semanticSchema(semanticSchema)
|
||||
.candidateQueries(new ArrayList<>())
|
||||
.mapInfo(new SchemaMapInfo())
|
||||
|
||||
Reference in New Issue
Block a user