mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-01 13:13:10 +00:00
Fix #5352: Getting single term for multiple times from search index; Fix #5330: Support Advanced search provide multiple field suggestions (#5356)
This commit is contained in:
parent
67e108f08f
commit
b4ffc36e89
@ -44,6 +44,7 @@ import org.openmetadata.catalog.elasticsearch.ElasticSearchIndexDefinition.Elast
|
||||
import org.openmetadata.catalog.entity.data.Dashboard;
|
||||
import org.openmetadata.catalog.entity.data.Database;
|
||||
import org.openmetadata.catalog.entity.data.DatabaseSchema;
|
||||
import org.openmetadata.catalog.entity.data.Glossary;
|
||||
import org.openmetadata.catalog.entity.data.GlossaryTerm;
|
||||
import org.openmetadata.catalog.entity.data.MlModel;
|
||||
import org.openmetadata.catalog.entity.data.Pipeline;
|
||||
@ -110,6 +111,9 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
||||
case Entity.GLOSSARY_TERM:
|
||||
updateGlossaryTerm(event);
|
||||
break;
|
||||
case Entity.GLOSSARY:
|
||||
updateGlossary(event);
|
||||
break;
|
||||
case Entity.DATABASE:
|
||||
updateDatabase(event);
|
||||
break;
|
||||
@ -450,6 +454,17 @@ public class ElasticSearchEventPublisher extends AbstractEventPublisher {
|
||||
}
|
||||
}
|
||||
|
||||
private void updateGlossary(ChangeEvent event) throws IOException {
|
||||
if (event.getEventType() == EventType.ENTITY_DELETED) {
|
||||
Glossary glossary = (Glossary) event.getEntity();
|
||||
DeleteByQueryRequest request = new DeleteByQueryRequest(ElasticSearchIndexType.GLOSSARY_SEARCH_INDEX.indexName);
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(new TermQueryBuilder("glossary_name", glossary.getName()));
|
||||
request.setQuery(queryBuilder);
|
||||
deleteEntityFromElasticSearchByQuery(request);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateMlModel(ChangeEvent event) throws IOException {
|
||||
MlModelESIndex mlModelESIndex = null;
|
||||
if (event.getEntity() != null
|
||||
|
@ -904,19 +904,32 @@ class MlModelESIndex extends ElasticSearchIndex {
|
||||
ParseTags parseTags = new ParseTags(tags);
|
||||
String description = mlModel.getDescription() != null ? mlModel.getDescription() : "";
|
||||
String displayName = mlModel.getDisplayName() != null ? mlModel.getDisplayName() : "";
|
||||
return internalBuilder()
|
||||
.mlModelId(mlModel.getId().toString())
|
||||
.name(mlModel.getName())
|
||||
.displayName(displayName)
|
||||
.description(description)
|
||||
.fqdn(mlModel.getFullyQualifiedName())
|
||||
.algorithm(mlModel.getAlgorithm())
|
||||
.mlFeatures(mlFeatures)
|
||||
.mlHyperParameters(mlHyperParameters)
|
||||
.lastUpdatedTimestamp(updatedTimestamp)
|
||||
.entityType("glossaryTerm")
|
||||
.suggest(suggest)
|
||||
.deleted(mlModel.getDeleted())
|
||||
.tags(parseTags.tags);
|
||||
MlModelESIndexBuilder mlModelESIndexBuilder =
|
||||
internalBuilder()
|
||||
.mlModelId(mlModel.getId().toString())
|
||||
.name(mlModel.getName())
|
||||
.displayName(displayName)
|
||||
.description(description)
|
||||
.fqdn(mlModel.getFullyQualifiedName())
|
||||
.algorithm(mlModel.getAlgorithm())
|
||||
.mlFeatures(mlFeatures)
|
||||
.mlHyperParameters(mlHyperParameters)
|
||||
.lastUpdatedTimestamp(updatedTimestamp)
|
||||
.entityType("mlmodel")
|
||||
.suggest(suggest)
|
||||
.deleted(mlModel.getDeleted())
|
||||
.tags(parseTags.tags);
|
||||
|
||||
if (mlModel.getFollowers() != null) {
|
||||
mlModelESIndexBuilder.followers(
|
||||
mlModel.getFollowers().stream().map(item -> item.getId().toString()).collect(Collectors.toList()));
|
||||
} else if (eventType == EventType.ENTITY_CREATED) {
|
||||
mlModelESIndexBuilder.followers(Collections.emptyList());
|
||||
}
|
||||
|
||||
if (mlModel.getOwner() != null) {
|
||||
mlModelESIndexBuilder.owner(mlModel.getOwner());
|
||||
}
|
||||
return mlModelESIndexBuilder;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user