RED-1184: Always find reanaylsis sections with caseinsentive values to remove values if type has changed from caseinsensitive to casesensitive
This commit is contained in:
parent
26def889d8
commit
a39bbd9afa
@ -5,6 +5,7 @@ import com.iqser.red.service.redaction.v1.server.redaction.model.DictionaryIncre
|
|||||||
import com.iqser.red.service.redaction.v1.server.redaction.model.Entity;
|
import com.iqser.red.service.redaction.v1.server.redaction.model.Entity;
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.model.EntityPositionSequence;
|
import com.iqser.red.service.redaction.v1.server.redaction.model.EntityPositionSequence;
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText;
|
import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText;
|
||||||
|
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@ -17,7 +18,6 @@ import java.util.stream.Collectors;
|
|||||||
@SuppressWarnings("PMD")
|
@SuppressWarnings("PMD")
|
||||||
public class EntitySearchUtils {
|
public class EntitySearchUtils {
|
||||||
|
|
||||||
|
|
||||||
public boolean sectionContainsAny(String sectionText, Set<DictionaryIncrementValue> values) {
|
public boolean sectionContainsAny(String sectionText, Set<DictionaryIncrementValue> values) {
|
||||||
|
|
||||||
String inputString = sectionText.toLowerCase(Locale.ROOT);
|
String inputString = sectionText.toLowerCase(Locale.ROOT);
|
||||||
@ -38,9 +38,7 @@ public class EntitySearchUtils {
|
|||||||
|
|
||||||
if (startIndex > -1 && (startIndex == 0 || Character.isWhitespace(inputString.charAt(startIndex - 1)) || isSeparator(inputString
|
if (startIndex > -1 && (startIndex == 0 || Character.isWhitespace(inputString.charAt(startIndex - 1)) || isSeparator(inputString
|
||||||
.charAt(startIndex - 1))) && (stopIndex == inputString.length() || isSeparator(inputString.charAt(stopIndex)))) {
|
.charAt(startIndex - 1))) && (stopIndex == inputString.length() || isSeparator(inputString.charAt(stopIndex)))) {
|
||||||
if (value.isCaseinsensitive() || !value.isCaseinsensitive() && sectionText.substring(startIndex, stopIndex).equals(value.getValue())) {
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} while (startIndex > -1);
|
} while (startIndex > -1);
|
||||||
}
|
}
|
||||||
@ -98,8 +96,8 @@ public class EntitySearchUtils {
|
|||||||
.sorted(Comparator.comparing(Entity::getStart))
|
.sorted(Comparator.comparing(Entity::getStart))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
Entity firstEntity = orderedEntities.get(0);
|
Entity firstEntity = orderedEntities.get(0);
|
||||||
List<EntityPositionSequence> positionSequences = text.getSequences(firstEntity.getWord().trim(), dictionary.isCaseInsensitiveDictionary(firstEntity
|
List<EntityPositionSequence> positionSequences = text.getSequences(firstEntity.getWord()
|
||||||
.getType()), firstEntity.getTargetSequences());
|
.trim(), dictionary.isCaseInsensitiveDictionary(firstEntity.getType()), firstEntity.getTargetSequences());
|
||||||
|
|
||||||
for (int i = 0; i <= orderedEntities.size() - 1; i++) {
|
for (int i = 0; i <= orderedEntities.size() - 1; i++) {
|
||||||
try {
|
try {
|
||||||
@ -133,6 +131,7 @@ public class EntitySearchUtils {
|
|||||||
|
|
||||||
|
|
||||||
public void addEntitiesWithHigherRank(Set<Entity> entities, Set<Entity> found, Dictionary dictionary) {
|
public void addEntitiesWithHigherRank(Set<Entity> entities, Set<Entity> found, Dictionary dictionary) {
|
||||||
|
|
||||||
found.forEach(f -> addEntitiesWithHigherRank(entities, f, dictionary));
|
found.forEach(f -> addEntitiesWithHigherRank(entities, f, dictionary));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,9 +147,11 @@ public class EntitySearchUtils {
|
|||||||
entities.add(found);
|
entities.add(found);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void addEntitiesIgnoreRank(Set<Entity> entities, Set<Entity> found) {
|
public void addEntitiesIgnoreRank(Set<Entity> entities, Set<Entity> found) {
|
||||||
// HashSet keeps old value but we want the new.
|
// HashSet keeps old value but we want the new.
|
||||||
entities.removeAll(found);
|
entities.removeAll(found);
|
||||||
entities.addAll(found);
|
entities.addAll(found);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user