diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/elasticsearch/TableIndex.java b/openmetadata-service/src/main/java/org/openmetadata/service/elasticsearch/TableIndex.java index d66b470ea48..384af17b428 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/elasticsearch/TableIndex.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/elasticsearch/TableIndex.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.function.Predicate; +import java.util.regex.Pattern; import org.openmetadata.schema.entity.data.Table; import org.openmetadata.schema.type.Column; import org.openmetadata.schema.type.TagLabel; @@ -49,13 +50,12 @@ public class TableIndex implements ElasticSearchIndex { } } tags.addAll(ElasticSearchIndexUtils.parseTags(table.getTags())); - suggest.add(ElasticSearchSuggest.builder().input(table.getFullyQualifiedName()).weight(5).build()); - suggest.add(ElasticSearchSuggest.builder().input(table.getName()).weight(10).build()); + parseTableSuggest(suggest); serviceSuggest.add(ElasticSearchSuggest.builder().input(table.getService().getName()).weight(5).build()); databaseSuggest.add(ElasticSearchSuggest.builder().input(table.getDatabase().getName()).weight(5).build()); schemaSuggest.add(ElasticSearchSuggest.builder().input(table.getDatabaseSchema().getName()).weight(5).build()); - ParseTags parseTags = new ParseTags(tags); + doc.put("displayName", table.getDisplayName() != null ? table.getDisplayName() : table.getName()); doc.put("tags", parseTags.tags); doc.put("tier", parseTags.tierTag); @@ -70,6 +70,20 @@ public class TableIndex implements ElasticSearchIndex { return doc; } + private void parseTableSuggest(List suggest) { + suggest.add(ElasticSearchSuggest.builder().input(table.getFullyQualifiedName()).weight(5).build()); + suggest.add(ElasticSearchSuggest.builder().input(table.getName()).weight(10).build()); + // Table FQN has 4 parts + String[] fqnPartsWithoutService = table.getFullyQualifiedName().split(Pattern.quote(Entity.SEPARATOR), 2); + if (fqnPartsWithoutService.length == 2) { + suggest.add(ElasticSearchSuggest.builder().input(fqnPartsWithoutService[1]).weight(5).build()); + String[] fqnPartsWithoutDB = fqnPartsWithoutService[1].split(Pattern.quote(Entity.SEPARATOR), 2); + if (fqnPartsWithoutDB.length == 2) { + suggest.add(ElasticSearchSuggest.builder().input(fqnPartsWithoutDB[1]).weight(5).build()); + } + } + } + private void parseColumns(List columns, List flattenColumns, String parentColumn) { Optional optParentColumn = Optional.ofNullable(parentColumn).filter(Predicate.not(String::isEmpty)); List tags = new ArrayList<>(); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/events/AuditEventHandler.java b/openmetadata-service/src/main/java/org/openmetadata/service/events/AuditEventHandler.java index 86afdf13b98..e7b07e9bebb 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/events/AuditEventHandler.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/events/AuditEventHandler.java @@ -27,6 +27,7 @@ import org.slf4j.MarkerFactory; @Slf4j public class AuditEventHandler implements EventHandler { private final Marker auditMarker = MarkerFactory.getMarker("AUDIT"); + private final String ANONYMOUS_USER = "anonymous"; public void init(OpenMetadataApplicationConfig config, Jdbi jdbi) { // Nothing to do @@ -37,7 +38,10 @@ public class AuditEventHandler implements EventHandler { String method = requestContext.getMethod(); if (responseContext.getEntity() != null) { String path = requestContext.getUriInfo().getPath(); - String username = requestContext.getSecurityContext().getUserPrincipal().getName(); + String username = ANONYMOUS_USER; + if (requestContext.getSecurityContext().getUserPrincipal() != null) { + username = requestContext.getSecurityContext().getUserPrincipal().getName(); + } try { EntityReference entityReference = ((EntityInterface) responseContext.getEntity()).getEntityReference(); AuditLog auditLog =