diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java index 8b49c3c4..7d20ad15 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java @@ -300,9 +300,11 @@ public class EntityRedactionService { !local, model.isDossierDictionary(), local ? Engine.RULE : Engine.DICTIONARY, - local ? EntityType.RECOMMENDATION : EntityType.ENTITY)).stream().filter(e -> !e.isFalsePositive()).collect(Collectors.toSet()); + local ? EntityType.RECOMMENDATION : EntityType.ENTITY)); - EntitySearchUtils.addOrAddEngine(found, entities); + var withPositions = EntitySearchUtils.clearAndFindPositions(entities, searchableText, dictionary, manualRedactions); + + EntitySearchUtils.addOrAddEngine(found, withPositions.stream().filter(e -> !e.isFalsePositive()).collect(Collectors.toSet())); } Set nerFound = new HashSet<>(); @@ -310,8 +312,8 @@ public class EntityRedactionService { nerFound.addAll(getNerValues(sectionNumber, nerEntities, cellStarts, headline)); } - var cleared = EntitySearchUtils.clearAndFindPositions(found, searchableText, dictionary, manualRedactions); - return new Entities(cleared.stream().filter(e -> !e.isFalsePositive()).collect(Collectors.toSet()), nerFound); + EntitySearchUtils.removeEntitiesContainedInLarger(found); + return new Entities(found, nerFound); }