(improvement)(Headless) Filter out SchemaElement mapped whose detect word length is 1 (#1237)

Co-authored-by: lxwcodemonkey
This commit is contained in:
LXW
2024-06-27 11:25:27 +08:00
committed by GitHub
parent 9315dc35f9
commit 2bf30bd75e

View File

@@ -47,7 +47,7 @@ public abstract class BaseMapper implements SchemaMapper {
private void filter(QueryContext queryContext) { private void filter(QueryContext queryContext) {
filterByDataSetId(queryContext); filterByDataSetId(queryContext);
filterTermByDetectWordLen(queryContext); filterByDetectWordLenLessThanOne(queryContext);
switch (queryContext.getQueryDataType()) { switch (queryContext.getQueryDataType()) {
case TAG: case TAG:
filterByQueryDataType(queryContext, element -> !(element.getIsTag() > 0)); filterByQueryDataType(queryContext, element -> !(element.getIsTag() > 0));
@@ -81,18 +81,14 @@ public abstract class BaseMapper implements SchemaMapper {
} }
} }
private static void filterTermByDetectWordLen(QueryContext queryContext) { private static void filterByDetectWordLenLessThanOne(QueryContext queryContext) {
Map<Long, List<SchemaElementMatch>> dataSetElementMatches = Map<Long, List<SchemaElementMatch>> dataSetElementMatches =
queryContext.getMapInfo().getDataSetElementMatches(); queryContext.getMapInfo().getDataSetElementMatches();
for (Map.Entry<Long, List<SchemaElementMatch>> entry : dataSetElementMatches.entrySet()) { for (Map.Entry<Long, List<SchemaElementMatch>> entry : dataSetElementMatches.entrySet()) {
List<SchemaElementMatch> value = entry.getValue(); List<SchemaElementMatch> value = entry.getValue();
if (!CollectionUtils.isEmpty(value)) { if (!CollectionUtils.isEmpty(value)) {
value.removeIf(schemaElementMatch -> { value.removeIf(schemaElementMatch ->
if (!SchemaElementType.TERM.equals(schemaElementMatch.getElement().getType())) { StringUtils.length(schemaElementMatch.getDetectWord()) <= 1);
return false;
}
return StringUtils.length(schemaElementMatch.getDetectWord()) <= 1;
});
} }
} }
} }