mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 13:07:32 +00:00
[improvement][chat]Optimize format of parse text info.
This commit is contained in:
@@ -9,7 +9,6 @@ import org.springframework.util.CollectionUtils;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -28,26 +27,31 @@ public class ParseInfoFormatProcessor implements ParseResultProcessor {
|
|||||||
|
|
||||||
private static void formatNL2SQLParseInfo(SemanticParseInfo parseInfo) {
|
private static void formatNL2SQLParseInfo(SemanticParseInfo parseInfo) {
|
||||||
StringBuilder textBuilder = new StringBuilder();
|
StringBuilder textBuilder = new StringBuilder();
|
||||||
textBuilder.append("**数据集:** ").append(parseInfo.getDataSet().getName()).append(" ");
|
textBuilder.append("数据集: ").append(parseInfo.getDataSet().getName()).append(" ");
|
||||||
Optional<SchemaElement> metric = parseInfo.getMetrics().stream().findFirst();
|
List<String> metricNames = parseInfo.getMetrics().stream().map(SchemaElement::getName)
|
||||||
metric.ifPresent(schemaElement -> textBuilder.append("**指标:** ")
|
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
.append(schemaElement.getName()).append(" "));
|
if (!CollectionUtils.isEmpty(metricNames)) {
|
||||||
|
textBuilder.append(" 指标: ").append(String.join(",", metricNames));
|
||||||
|
}
|
||||||
List<String> dimensionNames = parseInfo.getDimensions().stream().map(SchemaElement::getName)
|
List<String> dimensionNames = parseInfo.getDimensions().stream().map(SchemaElement::getName)
|
||||||
.filter(Objects::nonNull).collect(Collectors.toList());
|
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
if (!CollectionUtils.isEmpty(dimensionNames)) {
|
if (!CollectionUtils.isEmpty(dimensionNames)) {
|
||||||
textBuilder.append("**维度:** ").append(String.join(",", dimensionNames));
|
textBuilder.append(" 维度: ").append(String.join(",", dimensionNames));
|
||||||
}
|
}
|
||||||
textBuilder.append("\n\n**筛选条件:** \n");
|
|
||||||
if (parseInfo.getDateInfo() != null) {
|
if (parseInfo.getDateInfo() != null) {
|
||||||
textBuilder.append("**数据时间:** ").append(parseInfo.getDateInfo().getStartDate())
|
textBuilder.append(" 数据时间: ").append(parseInfo.getDateInfo().getStartDate())
|
||||||
.append("~").append(parseInfo.getDateInfo().getEndDate()).append(" ");
|
.append("~").append(parseInfo.getDateInfo().getEndDate()).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(parseInfo.getDimensionFilters())
|
if (!CollectionUtils.isEmpty(parseInfo.getDimensionFilters())
|
||||||
|| CollectionUtils.isEmpty(parseInfo.getMetricFilters())) {
|
|| CollectionUtils.isEmpty(parseInfo.getMetricFilters())) {
|
||||||
Set<QueryFilter> queryFilters = parseInfo.getDimensionFilters();
|
Set<QueryFilter> queryFilters = parseInfo.getDimensionFilters();
|
||||||
queryFilters.addAll(parseInfo.getMetricFilters());
|
queryFilters.addAll(parseInfo.getMetricFilters());
|
||||||
|
if (!queryFilters.isEmpty()) {
|
||||||
|
textBuilder.append(" 筛选条件: ");
|
||||||
|
}
|
||||||
for (QueryFilter queryFilter : queryFilters) {
|
for (QueryFilter queryFilter : queryFilters) {
|
||||||
textBuilder.append("**").append(queryFilter.getName()).append("**").append(" ")
|
textBuilder.append(queryFilter.getName()).append(" ")
|
||||||
.append(queryFilter.getOperator().getValue()).append(" ")
|
.append(queryFilter.getOperator().getValue()).append(" ")
|
||||||
.append(queryFilter.getValue()).append(" ");
|
.append(queryFilter.getValue()).append(" ");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user