From 352b025fd74d9ccbe1df5758db56b61d9ef4d906 Mon Sep 17 00:00:00 2001 From: 07Himank <112613760+07Himank@users.noreply.github.com> Date: Tue, 10 Oct 2023 21:20:28 +0530 Subject: [PATCH] Custom Property Backend Support and list approved glossary terms (#13496) --- .../service/search/elasticsearch/ElasticSearchClient.java | 5 ++++- .../service/search/opensearch/OpenSearchClient.java | 4 ++++ .../resources/elasticsearch/en/container_index_mapping.json | 2 +- .../resources/elasticsearch/en/dashboard_index_mapping.json | 2 +- .../resources/elasticsearch/en/database_index_mapping.json | 2 +- .../elasticsearch/en/database_schema_index_mapping.json | 2 +- .../resources/elasticsearch/en/mlmodel_index_mapping.json | 2 +- .../resources/elasticsearch/en/pipeline_index_mapping.json | 2 +- .../elasticsearch/en/search_entity_index_mapping.json | 2 +- .../elasticsearch/en/stored_procedure_index_mapping.json | 2 +- .../main/resources/elasticsearch/en/table_index_mapping.json | 2 +- .../main/resources/elasticsearch/en/topic_index_mapping.json | 2 +- .../resources/elasticsearch/jp/container_index_mapping.json | 2 +- .../resources/elasticsearch/jp/dashboard_index_mapping.json | 2 +- .../resources/elasticsearch/jp/database_index_mapping.json | 2 +- .../elasticsearch/jp/database_schema_index_mapping.json | 2 +- .../resources/elasticsearch/jp/mlmodel_index_mapping.json | 2 +- .../elasticsearch/jp/search_entity_index_mapping.json | 2 +- .../elasticsearch/jp/stored_procedure_index_mapping.json | 2 +- .../main/resources/elasticsearch/jp/table_index_mapping.json | 2 +- .../main/resources/elasticsearch/jp/topic_index_mapping.json | 3 +++ .../resources/elasticsearch/zh/container_index_mapping.json | 2 +- .../resources/elasticsearch/zh/dashboard_index_mapping.json | 2 +- .../resources/elasticsearch/zh/database_index_mapping.json | 2 +- .../elasticsearch/zh/database_schema_index_mapping.json | 2 +- .../resources/elasticsearch/zh/mlmodel_index_mapping.json | 2 +- .../elasticsearch/zh/search_entity_index_mapping.json | 2 +- .../elasticsearch/zh/stored_procedure_index_mapping.json | 2 +- .../main/resources/elasticsearch/zh/table_index_mapping.json | 2 +- .../main/resources/elasticsearch/zh/topic_index_mapping.json | 2 +- 30 files changed, 38 insertions(+), 28 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java index f25ef471a98..f32c02b8184 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchClient.java @@ -354,6 +354,10 @@ public class ElasticSearchClient implements SearchClient { searchSourceBuilder.sort(request.getSortFieldParam(), SortOrder.fromString(request.getSortOrder())); } + if (request.getIndex().equalsIgnoreCase("glossary_term_search_index")) { + searchSourceBuilder.query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("status", "Approved"))); + } + /* for performance reasons ElasticSearch doesn't provide accurate hits if we enable trackTotalHits parameter it will try to match every result, count and return hits however in most cases for search results an approximate value is good enough. @@ -1498,7 +1502,6 @@ public class ElasticSearchClient implements SearchClient { requestConfigBuilder .setConnectTimeout(esConfig.getConnectionTimeoutSecs() * 1000) .setSocketTimeout(esConfig.getSocketTimeoutSecs() * 1000)); - // return new RestHighLevelClient(restClientBuilder); return new RestHighLevelClientBuilder(restClient).setApiCompatibilityMode(true).build(); } catch (Exception e) { LOG.error("Failed to create elastic search client ", e); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java index 096434b1fad..800445bf252 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchClient.java @@ -346,6 +346,10 @@ public class OpenSearchClient implements SearchClient { searchSourceBuilder.sort(request.getSortFieldParam(), SortOrder.fromString(request.getSortOrder())); } + if (request.getIndex().equalsIgnoreCase("glossary_term_search_index")) { + searchSourceBuilder.query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("status", "Approved"))); + } + /* for performance reasons OpenSearch doesn't provide accurate hits if we enable trackTotalHits parameter it will try to match every result, count and return hits however in most cases for search results an approximate value is good enough. diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/container_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/container_index_mapping.json index b3d1ea4d2cd..39ce7a2d9f5 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/container_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/container_index_mapping.json @@ -220,7 +220,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "children": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json index 9427bb2e8ec..b38cf0c7a41 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json @@ -228,7 +228,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/database_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/database_index_mapping.json index 0866c83d2b4..b6f0acc35e4 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/database_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/database_index_mapping.json @@ -166,7 +166,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "owner": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/database_schema_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/database_schema_index_mapping.json index e519fa06202..eacc533d8ad 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/database_schema_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/database_schema_index_mapping.json @@ -144,7 +144,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "owner": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json index 0a72e0c5534..90c18db07bc 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json @@ -134,7 +134,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "mlFeatures": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json index f3a56338ff8..84b5d82f9ec 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json @@ -161,7 +161,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "owner": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/search_entity_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/search_entity_index_mapping.json index c382306c6b9..74f4967cacd 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/search_entity_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/search_entity_index_mapping.json @@ -362,7 +362,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/stored_procedure_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/stored_procedure_index_mapping.json index a51e300ed6c..46bbed7bd36 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/stored_procedure_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/stored_procedure_index_mapping.json @@ -434,7 +434,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "sourceUrl": { "type": "keyword" diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json index 4c52dbb0041..a5453e5a6c2 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json @@ -346,7 +346,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json index 6fef4cad135..63fb01c4c78 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json @@ -130,7 +130,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/container_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/container_index_mapping.json index edec7ba55bc..4c187a5cd11 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/container_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/container_index_mapping.json @@ -165,7 +165,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataModel": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/dashboard_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/dashboard_index_mapping.json index ea4994cae83..1edfaa5c94f 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/dashboard_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/dashboard_index_mapping.json @@ -131,7 +131,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/database_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/database_index_mapping.json index fbfa7755199..f77b3373313 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/database_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/database_index_mapping.json @@ -141,7 +141,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "state": { "type": "keyword" diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/database_schema_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/database_schema_index_mapping.json index 4404ebacf57..2a3d9112bb5 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/database_schema_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/database_schema_index_mapping.json @@ -153,7 +153,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "owner": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/mlmodel_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/mlmodel_index_mapping.json index 9db31e92c83..f04d06c6e8b 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/mlmodel_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/mlmodel_index_mapping.json @@ -136,7 +136,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "mlFeatures": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/search_entity_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/search_entity_index_mapping.json index b5f271be7d1..738868d2694 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/search_entity_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/search_entity_index_mapping.json @@ -361,7 +361,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "lifeCycle": { "type": "object" diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/stored_procedure_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/stored_procedure_index_mapping.json index aba87ba9319..24a37167870 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/stored_procedure_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/stored_procedure_index_mapping.json @@ -436,7 +436,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "sourceUrl": { "type": "keyword" diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/table_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/table_index_mapping.json index e43f4fe646b..290dbca63a6 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/table_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/table_index_mapping.json @@ -355,7 +355,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/jp/topic_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/jp/topic_index_mapping.json index 8b0b758a5bb..6ba136ef6e2 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/jp/topic_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/jp/topic_index_mapping.json @@ -286,6 +286,9 @@ } } }, + "extension": { + "type": "object" + }, "dataProducts": { "properties": { "id": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/container_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/container_index_mapping.json index 4f49eff9f00..1ecfb938763 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/container_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/container_index_mapping.json @@ -218,7 +218,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "children": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/dashboard_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/dashboard_index_mapping.json index db8cae16b05..d493de3ca52 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/dashboard_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/dashboard_index_mapping.json @@ -157,7 +157,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/database_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/database_index_mapping.json index 2110b43d361..e48ebe209c7 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/database_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/database_index_mapping.json @@ -146,7 +146,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "owner": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/database_schema_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/database_schema_index_mapping.json index 6cc7ceafa8d..2b1c09f50bd 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/database_schema_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/database_schema_index_mapping.json @@ -129,7 +129,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "owner": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/mlmodel_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/mlmodel_index_mapping.json index 39aa288e2a4..e4986fd9593 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/mlmodel_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/mlmodel_index_mapping.json @@ -105,7 +105,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "mlFeatures": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/search_entity_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/search_entity_index_mapping.json index 5b08e7e10eb..222a44a9678 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/search_entity_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/search_entity_index_mapping.json @@ -348,7 +348,7 @@ "type": "object" }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/stored_procedure_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/stored_procedure_index_mapping.json index 14101a33a56..4ee891d777f 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/stored_procedure_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/stored_procedure_index_mapping.json @@ -423,7 +423,7 @@ "type": "object" }, "extension": { - "type": "keyword" + "type": "object" }, "sourceUrl": { "type": "keyword" diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/table_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/table_index_mapping.json index 76b49f212da..7febb22ac67 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/table_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/table_index_mapping.json @@ -333,7 +333,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": { diff --git a/openmetadata-service/src/main/resources/elasticsearch/zh/topic_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/zh/topic_index_mapping.json index 7fb84261295..67222dff7a9 100644 --- a/openmetadata-service/src/main/resources/elasticsearch/zh/topic_index_mapping.json +++ b/openmetadata-service/src/main/resources/elasticsearch/zh/topic_index_mapping.json @@ -107,7 +107,7 @@ } }, "extension": { - "type": "keyword" + "type": "object" }, "dataProducts": { "properties": {