diff --git a/ingestion/src/metadata/ingestion/sink/elasticsearch.py b/ingestion/src/metadata/ingestion/sink/elasticsearch.py index 00b8b303ebf..cfef3d0df72 100644 --- a/ingestion/src/metadata/ingestion/sink/elasticsearch.py +++ b/ingestion/src/metadata/ingestion/sink/elasticsearch.py @@ -603,6 +603,21 @@ class ElasticsearchSink(Sink[Entity]): for ml_model_hyper_parameter in ml_model.mlHyperParameters: ml_model_hyper_parameters.append(ml_model_hyper_parameter.name) + service_entity = ESEntityReference( + id=str(ml_model.service.id.__root__), + name=ml_model.service.name, + displayName=ml_model.service.displayName + if ml_model.service.displayName + else "", + description=ml_model.service.description.__root__ + if ml_model.service.description + else "", + type=ml_model.service.type, + fullyQualifiedName=ml_model.service.fullyQualifiedName, + deleted=ml_model.service.deleted, + href=ml_model.service.href.__root__, + ) + ml_model_doc = MlModelESDocument( ml_model_id=str(ml_model.id.__root__), deleted=ml_model.deleted, @@ -618,6 +633,7 @@ class ElasticsearchSink(Sink[Entity]): fqdn=ml_model_fqn, owner=ml_model.owner, followers=ml_model_followers, + service=service_entity, ) return ml_model_doc diff --git a/ingestion/src/metadata/ingestion/sink/elasticsearch_constants.py b/ingestion/src/metadata/ingestion/sink/elasticsearch_constants.py index 8dd32db80f2..a62c2cfa703 100644 --- a/ingestion/src/metadata/ingestion/sink/elasticsearch_constants.py +++ b/ingestion/src/metadata/ingestion/sink/elasticsearch_constants.py @@ -27,162 +27,164 @@ TABLE_ELASTICSEARCH_INDEX_MAPPING = textwrap.dedent( } } }, - "properties": { - "name": { - "type": "text" - }, - "display_name": { - "type": "text" - }, - "owner": { + "mappings": { "properties": { - "id": { - "type": "keyword", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 128 - } - } - }, - "type": { - "type": "text" - }, "name": { - "type": "keyword", - "fields": { - "keyword": { + "type": "text" + }, + "display_name": { + "type": "text" + }, + "owner": { + "properties": { + "id": { "type": "keyword", - "ignore_above": 256 + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 128 + } + } + }, + "type": { + "type": "text" + }, + "name": { + "type": "keyword", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "fullyQualifiedName": { + "type": "text" + }, + "description": { + "type": "text" + }, + "deleted": { + "type": "boolean" + }, + "href": { + "type": "text" } } }, - "fullyQualifiedName": { - "type": "text" - }, - "description": { - "type": "text" + "fqdn": { + "type": "keyword", + "normalizer": "lowercase_normalizer" }, "deleted": { "type": "boolean" }, - "href": { - "type": "text" - } - } - }, - "fqdn": { - "type": "keyword", - "normalizer": "lowercase_normalizer" - }, - "deleted": { - "type": "boolean" - }, - "followers": { - "type": "keyword" - }, - "last_updated_timestamp": { - "type": "date", - "format": "epoch_second" - }, - "description": { - "type": "text" - }, - "tier": { - "type": "keyword" - }, - "column_names": { - "type": "text" - }, - "column_descriptions": { - "type": "text" - }, - "tags": { - "type": "keyword" - }, - "service": { - "properties": { - "id": { - "type": "keyword", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 256 - } - } - }, - "type": { + "followers": { "type": "keyword" }, - "name": { - "type": "keyword", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 256 - } - } - }, - "fullyQualifiedName": { - "type": "keyword" + "last_updated_timestamp": { + "type": "date", + "format": "epoch_second" }, "description": { "type": "text" }, - "deleted": { - "type": "boolean" + "tier": { + "type": "keyword" }, - "href": { + "column_names": { "type": "text" + }, + "column_descriptions": { + "type": "text" + }, + "tags": { + "type": "keyword" + }, + "service": { + "properties": { + "id": { + "type": "keyword", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "type": { + "type": "keyword" + }, + "name": { + "type": "keyword", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "fullyQualifiedName": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "deleted": { + "type": "boolean" + }, + "href": { + "type": "text" + } + } + }, + "service_type": { + "type": "keyword" + }, + "entity_type": { + "type": "keyword" + }, + "database": { + "type": "keyword" + }, + "database_schema": { + "type": "keyword" + }, + "suggest": { + "type": "completion" + }, + "column_suggest": { + "type": "completion" + }, + "schema_suggest": { + "type": "completion" + }, + "database_suggest": { + "type": "completion" + }, + "service_suggest": { + "type": "completion" + }, + "monthly_stats": { + "type": "long" + }, + "monthly_percentile_rank": { + "type": "long" + }, + "weekly_stats": { + "type": "long" + }, + "weekly_percentile_rank": { + "type": "long" + }, + "daily_percentile_rank": { + "type": "long" + }, + "daily_stats": { + "type": "long" } } - }, - "service_type": { - "type": "keyword" - }, - "entity_type": { - "type": "keyword" - }, - "database": { - "type": "keyword" - }, - "database_schema": { - "type": "keyword" - }, - "suggest": { - "type": "completion" - }, - "column_suggest": { - "type": "completion" - }, - "schema_suggest": { - "type": "completion" - }, - "database_suggest": { - "type": "completion" - }, - "service_suggest": { - "type": "completion" - }, - "monthly_stats": { - "type": "long" - }, - "monthly_percentile_rank": { - "type": "long" - }, - "weekly_stats": { - "type": "long" - }, - "weekly_percentile_rank": { - "type": "long" - }, - "daily_percentile_rank": { - "type": "long" - }, - "daily_stats": { - "type": "long" } - } } """ )