mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 13:47:09 +00:00
[improvement][chat] Optimize and modify the mapper method for terminology (#1866)
This commit is contained in:
@@ -5,8 +5,10 @@ import com.tencent.supersonic.common.pojo.enums.DatePeriodEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.TimeMode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class AggregateTypeDefaultConfig {
|
||||
public class AggregateTypeDefaultConfig implements Serializable {
|
||||
|
||||
private TimeDefaultConfig timeDefaultConfig =
|
||||
new TimeDefaultConfig(7, DatePeriodEnum.DAY, TimeMode.RECENT);
|
||||
|
||||
@@ -4,6 +4,7 @@ import lombok.Data;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -14,7 +15,7 @@ import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Data
|
||||
public class DataSetSchema {
|
||||
public class DataSetSchema implements Serializable {
|
||||
|
||||
private String databaseType;
|
||||
private SchemaElement dataSet;
|
||||
|
||||
@@ -2,11 +2,12 @@ package com.tencent.supersonic.headless.api.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DefaultDisplayInfo {
|
||||
public class DefaultDisplayInfo implements Serializable {
|
||||
|
||||
// When displaying tag selection results, the information displayed by default
|
||||
private List<Long> dimensionIds = new ArrayList<>();
|
||||
|
||||
@@ -3,8 +3,10 @@ package com.tencent.supersonic.headless.api.pojo;
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class DetailTypeDefaultConfig {
|
||||
public class DetailTypeDefaultConfig implements Serializable {
|
||||
|
||||
private DefaultDisplayInfo defaultDisplayInfo;
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.tencent.supersonic.headless.api.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class QueryConfig {
|
||||
public class QueryConfig implements Serializable {
|
||||
|
||||
private DetailTypeDefaultConfig detailTypeDefaultConfig = new DetailTypeDefaultConfig();
|
||||
|
||||
|
||||
@@ -5,11 +5,13 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class RelatedSchemaElement {
|
||||
public class RelatedSchemaElement implements Serializable {
|
||||
|
||||
private Long dimensionId;
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ public class SchemaElement implements Serializable {
|
||||
private double order;
|
||||
private int isTag;
|
||||
private String description;
|
||||
private boolean descriptionMapped;
|
||||
@Builder.Default
|
||||
private Map<String, Object> extInfo = new HashMap<>();
|
||||
private DimensionTimeTypeParams typeParams;
|
||||
|
||||
@@ -6,12 +6,14 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@ToString
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SchemaElementMatch {
|
||||
public class SchemaElementMatch implements Serializable {
|
||||
private SchemaElement element;
|
||||
private double offset;
|
||||
private double similarity;
|
||||
|
||||
@@ -3,15 +3,17 @@ package com.tencent.supersonic.headless.api.pojo;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@Getter
|
||||
public class SchemaMapInfo {
|
||||
public class SchemaMapInfo implements Serializable {
|
||||
|
||||
private final Map<Long, List<SchemaElementMatch>> dataSetElementMatches = new HashMap<>();
|
||||
|
||||
@@ -31,6 +33,23 @@ public class SchemaMapInfo {
|
||||
dataSetElementMatches.put(dataSet, elementMatches);
|
||||
}
|
||||
|
||||
public void addMatchedElements(SchemaMapInfo schemaMapInfo) {
|
||||
for (Map.Entry<Long, List<SchemaElementMatch>> entry : schemaMapInfo.dataSetElementMatches
|
||||
.entrySet()) {
|
||||
Long dataSet = entry.getKey();
|
||||
List<SchemaElementMatch> newMatches = entry.getValue();
|
||||
|
||||
if (dataSetElementMatches.containsKey(dataSet)) {
|
||||
List<SchemaElementMatch> existingMatches = dataSetElementMatches.get(dataSet);
|
||||
Set<SchemaElementMatch> mergedMatches = new HashSet<>(existingMatches);
|
||||
mergedMatches.addAll(newMatches);
|
||||
dataSetElementMatches.put(dataSet, new ArrayList<>(mergedMatches));
|
||||
} else {
|
||||
dataSetElementMatches.put(dataSet, new ArrayList<>(new HashSet<>(newMatches)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public List<SchemaElement> getTermDescriptionToMap() {
|
||||
List<SchemaElement> termElements = Lists.newArrayList();
|
||||
@@ -38,16 +57,11 @@ public class SchemaMapInfo {
|
||||
List<SchemaElementMatch> matchedElements = getMatchedElements(dataSetId);
|
||||
for (SchemaElementMatch schemaElementMatch : matchedElements) {
|
||||
if (SchemaElementType.TERM.equals(schemaElementMatch.getElement().getType())
|
||||
&& schemaElementMatch.isFullMatched()
|
||||
&& !schemaElementMatch.getElement().isDescriptionMapped()) {
|
||||
&& schemaElementMatch.isFullMatched()) {
|
||||
termElements.add(schemaElementMatch.getElement());
|
||||
}
|
||||
}
|
||||
}
|
||||
return termElements;
|
||||
}
|
||||
|
||||
public boolean needContinueMap() {
|
||||
return CollectionUtils.isNotEmpty(getTermDescriptionToMap());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryFilter;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -22,7 +23,7 @@ import static com.tencent.supersonic.common.pojo.Constants.DEFAULT_DETAIL_LIMIT;
|
||||
import static com.tencent.supersonic.common.pojo.Constants.DEFAULT_METRIC_LIMIT;
|
||||
|
||||
@Data
|
||||
public class SemanticParseInfo {
|
||||
public class SemanticParseInfo implements Serializable {
|
||||
|
||||
private Integer id;
|
||||
private String queryMode = "PLAIN_TEXT";
|
||||
|
||||
@@ -6,10 +6,12 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TimeDefaultConfig {
|
||||
public class TimeDefaultConfig implements Serializable {
|
||||
|
||||
/** default time span unit */
|
||||
private Integer unit = 1;
|
||||
|
||||
@@ -5,9 +5,11 @@ import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum;
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
public class QueryFilter {
|
||||
public class QueryFilter implements Serializable {
|
||||
|
||||
private String bizName;
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@ package com.tencent.supersonic.headless.api.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class QueryFilters {
|
||||
public class QueryFilters implements Serializable {
|
||||
private List<QueryFilter> filters = new ArrayList<>();
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
}
|
||||
|
||||
@@ -11,12 +11,13 @@ import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.enums.MapModeEnum;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
public class QueryNLReq extends SemanticQueryReq {
|
||||
public class QueryNLReq extends SemanticQueryReq implements Serializable {
|
||||
private String queryText;
|
||||
private Set<Long> dataSetIds = Sets.newHashSet();
|
||||
private User user;
|
||||
|
||||
Reference in New Issue
Block a user