mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 04:27:39 +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
|
@Slf4j
|
||||||
public class QueryFilterMapper implements SchemaMapper {
|
public class QueryFilterMapper implements SchemaMapper {
|
||||||
|
|
||||||
private double similarity = 1.0;
|
private double similarity = 1.0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -35,7 +36,7 @@ public class QueryFilterMapper implements SchemaMapper {
|
|||||||
schemaElementMatches = Lists.newArrayList();
|
schemaElementMatches = Lists.newArrayList();
|
||||||
schemaMapInfo.setMatchedElements(modelId, schemaElementMatches);
|
schemaMapInfo.setMatchedElements(modelId, schemaElementMatches);
|
||||||
}
|
}
|
||||||
addValueSchemaElementMatch(queryContext, schemaElementMatches, queryReq.getQueryFilters());
|
addValueSchemaElementMatch(queryContext, schemaElementMatches);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clearOtherSchemaElementMatch(Long modelId, SchemaMapInfo schemaMapInfo) {
|
private void clearOtherSchemaElementMatch(Long modelId, SchemaMapInfo schemaMapInfo) {
|
||||||
@@ -47,12 +48,12 @@ public class QueryFilterMapper implements SchemaMapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<SchemaElementMatch> addValueSchemaElementMatch(QueryContext queryContext,
|
private List<SchemaElementMatch> addValueSchemaElementMatch(QueryContext queryContext,
|
||||||
List<SchemaElementMatch> candidateElementMatches,
|
List<SchemaElementMatch> candidateElementMatches) {
|
||||||
QueryFilters queryFilter) {
|
QueryFilters queryFilters = queryContext.getQueryFilters();
|
||||||
if (queryFilter == null || CollectionUtils.isEmpty(queryFilter.getFilters())) {
|
if (queryFilters == null || CollectionUtils.isEmpty(queryFilters.getFilters())) {
|
||||||
return candidateElementMatches;
|
return candidateElementMatches;
|
||||||
}
|
}
|
||||||
for (QueryFilter filter : queryFilter.getFilters()) {
|
for (QueryFilter filter : queryFilters.getFilters()) {
|
||||||
if (checkExistSameValueSchemaElementMatch(filter, candidateElementMatches)) {
|
if (checkExistSameValueSchemaElementMatch(filter, candidateElementMatches)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class QueryServiceImpl implements QueryService {
|
|||||||
Map<String, Plugin> nameToPlugin = pluginService.getNameToPlugin();
|
Map<String, Plugin> nameToPlugin = pluginService.getNameToPlugin();
|
||||||
QueryContext queryCtx = QueryContext.builder()
|
QueryContext queryCtx = QueryContext.builder()
|
||||||
.request(queryReq)
|
.request(queryReq)
|
||||||
|
.queryFilters(queryReq.getQueryFilters())
|
||||||
.semanticSchema(semanticSchema)
|
.semanticSchema(semanticSchema)
|
||||||
.candidateQueries(new ArrayList<>())
|
.candidateQueries(new ArrayList<>())
|
||||||
.mapInfo(new SchemaMapInfo())
|
.mapInfo(new SchemaMapInfo())
|
||||||
|
|||||||
Reference in New Issue
Block a user