mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-11-04 04:29:13 +00:00 
			
		
		
		
	addded aggreagtions for new indexes and fields and missing things (#13278)
This commit is contained in:
		
							parent
							
								
									a778500e26
								
							
						
					
					
						commit
						8292ad0078
					
				@ -11,6 +11,7 @@ public class EntityBuilderConstant {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  public static final String COLUMNS_NAME_KEYWORD = "columns.name.keyword";
 | 
					  public static final String COLUMNS_NAME_KEYWORD = "columns.name.keyword";
 | 
				
			||||||
  public static final String OWNER_DISPLAY_NAME_KEYWORD = "owner.displayName.keyword";
 | 
					  public static final String OWNER_DISPLAY_NAME_KEYWORD = "owner.displayName.keyword";
 | 
				
			||||||
 | 
					  public static final String DOMAIN_DISPLAY_NAME_KEYWORD = "domain.displayName.keyword";
 | 
				
			||||||
  public static final String DATA_MODEL_COLUMNS_NAME_KEYWORD = "dataModel.columns.name.keyword";
 | 
					  public static final String DATA_MODEL_COLUMNS_NAME_KEYWORD = "dataModel.columns.name.keyword";
 | 
				
			||||||
  public static final String NAME_KEYWORD = "name.keyword";
 | 
					  public static final String NAME_KEYWORD = "name.keyword";
 | 
				
			||||||
  public static final String FIELD_NAME_NGRAM = "name.ngram";
 | 
					  public static final String FIELD_NAME_NGRAM = "name.ngram";
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@ import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.QUERY;
 | 
					import static org.openmetadata.service.Entity.QUERY;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.COLUMNS_NAME_KEYWORD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.DATA_MODEL_COLUMNS_NAME_KEYWORD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DATA_MODEL_COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DOMAIN_DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.ES_MESSAGE_SCHEMA_FIELD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.ES_MESSAGE_SCHEMA_FIELD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.ES_TAG_FQN_FIELD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.ES_TAG_FQN_FIELD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.MAX_AGGREGATE_SIZE;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.MAX_AGGREGATE_SIZE;
 | 
				
			||||||
@ -615,7 +616,8 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    searchSourceBuilder.aggregation(AggregationBuilders.terms("database.name.keyword").field("database.name.keyword"));
 | 
					    searchSourceBuilder.aggregation(AggregationBuilders.terms("database.name.keyword").field("database.name.keyword"));
 | 
				
			||||||
    searchSourceBuilder
 | 
					    searchSourceBuilder
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("databaseSchema.name.keyword").field("databaseSchema.name.keyword"))
 | 
					        .aggregation(AggregationBuilders.terms("databaseSchema.name.keyword").field("databaseSchema.name.keyword"))
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(COLUMNS_NAME_KEYWORD).field(COLUMNS_NAME_KEYWORD));
 | 
					        .aggregation(AggregationBuilders.terms(COLUMNS_NAME_KEYWORD).field(COLUMNS_NAME_KEYWORD))
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms("tableType").field("tableType"));
 | 
				
			||||||
    return addAggregation(searchSourceBuilder);
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -653,11 +655,8 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
    SearchSourceBuilder searchSourceBuilder =
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
    searchSourceBuilder
 | 
					    searchSourceBuilder.aggregation(AggregationBuilders.terms("glossary.name.keyword").field("glossary.name.keyword"));
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(ES_TAG_FQN_FIELD).field(ES_TAG_FQN_FIELD).size(MAX_AGGREGATE_SIZE))
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("glossary.name.keyword").field("glossary.name.keyword"))
 | 
					 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(OWNER_DISPLAY_NAME_KEYWORD).field(OWNER_DISPLAY_NAME_KEYWORD));
 | 
					 | 
				
			||||||
    return searchSourceBuilder;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildTagSearchBuilder(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildTagSearchBuilder(String query, int from, int size) {
 | 
				
			||||||
@ -679,8 +678,11 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.field(highlightTagName);
 | 
					    hb.field(highlightTagName);
 | 
				
			||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size)
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("classification.name.keyword").field("classification.name.keyword"));
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    searchSourceBuilder.aggregation(
 | 
				
			||||||
 | 
					        AggregationBuilders.terms("classification.name.keyword").field("classification.name.keyword"));
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildContainerSearchBuilder(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildContainerSearchBuilder(String query, int from, int size) {
 | 
				
			||||||
@ -780,8 +782,9 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size);
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildDashboardDataModelsSearch(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildDashboardDataModelsSearch(String query, int from, int size) {
 | 
				
			||||||
@ -802,7 +805,13 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size);
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    searchSourceBuilder
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms("dataModelType").field("dataModelType"))
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms(COLUMNS_NAME_KEYWORD).field(COLUMNS_NAME_KEYWORD))
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms("project.keyword").field("project.keyword"));
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildDomainsSearch(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildDomainsSearch(String query, int from, int size) {
 | 
				
			||||||
@ -844,7 +853,10 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size);
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    searchSourceBuilder.aggregation(AggregationBuilders.terms("fields.name.keyword").field("fields.name.keyword"));
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildAggregateSearchBuilder(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildAggregateSearchBuilder(String query, int from, int size) {
 | 
				
			||||||
@ -860,11 +872,15 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
            AggregationBuilders.terms("service.name.keyword").field("service.name.keyword").size(MAX_AGGREGATE_SIZE))
 | 
					            AggregationBuilders.terms("service.name.keyword").field("service.name.keyword").size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(
 | 
					        .aggregation(
 | 
				
			||||||
            AggregationBuilders.terms("entityType.keyword").field("entityType.keyword").size(MAX_AGGREGATE_SIZE))
 | 
					            AggregationBuilders.terms("entityType.keyword").field("entityType.keyword").size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("tier.tagFQN").field("tier.tagFQN"))
 | 
					        .aggregation(AggregationBuilders.terms("tier.tagFQN").field("tier.tagFQN").size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(
 | 
					        .aggregation(
 | 
				
			||||||
            AggregationBuilders.terms(OWNER_DISPLAY_NAME_KEYWORD)
 | 
					            AggregationBuilders.terms(OWNER_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
                .field(OWNER_DISPLAY_NAME_KEYWORD)
 | 
					                .field(OWNER_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
                .size(MAX_AGGREGATE_SIZE))
 | 
					                .size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
 | 
					        .aggregation(
 | 
				
			||||||
 | 
					            AggregationBuilders.terms(DOMAIN_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
 | 
					                .field(DOMAIN_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
 | 
					                .size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(ES_TAG_FQN_FIELD).field(ES_TAG_FQN_FIELD));
 | 
					        .aggregation(AggregationBuilders.terms(ES_TAG_FQN_FIELD).field(ES_TAG_FQN_FIELD));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return builder;
 | 
					    return builder;
 | 
				
			||||||
@ -944,7 +960,7 @@ public class ElasticSearchClientImpl implements SearchClient {
 | 
				
			|||||||
      try {
 | 
					      try {
 | 
				
			||||||
        deleteEntityFromElasticSearch(deleteRequest);
 | 
					        deleteEntityFromElasticSearch(deleteRequest);
 | 
				
			||||||
        if (!CommonUtil.nullOrEmpty(scriptTxt) && !CommonUtil.nullOrEmpty(field)) {
 | 
					        if (!CommonUtil.nullOrEmpty(scriptTxt) && !CommonUtil.nullOrEmpty(field)) {
 | 
				
			||||||
          UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest("SearchAlias");
 | 
					          UpdateByQueryRequest updateByQueryRequest = new UpdateByQueryRequest(GLOBAL_SEARCH_ALIAS);
 | 
				
			||||||
          updateByQueryRequest.setQuery(new MatchQueryBuilder(field, entity.getFullyQualifiedName()));
 | 
					          updateByQueryRequest.setQuery(new MatchQueryBuilder(field, entity.getFullyQualifiedName()));
 | 
				
			||||||
          updateByQueryRequest.setRefresh(true);
 | 
					          updateByQueryRequest.setRefresh(true);
 | 
				
			||||||
          Script script =
 | 
					          Script script =
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,11 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DATA_MODEL_COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -35,6 +39,12 @@ public class ContainerIndex implements ColumnIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      container.setOwner(owner);
 | 
					      container.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (container.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = container.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      container.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(container);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(container);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
    List<SearchSuggest> columnSuggest = new ArrayList<>();
 | 
					    List<SearchSuggest> columnSuggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,12 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -34,6 +39,12 @@ public class DashboardDataModelIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      dashboardDataModel.setOwner(owner);
 | 
					      dashboardDataModel.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (dashboardDataModel.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = dashboardDataModel.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      dashboardDataModel.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(dashboardDataModel);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(dashboardDataModel);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -4,7 +4,12 @@ import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DESCRIPTION_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -34,6 +39,12 @@ public class DashboardIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      dashboard.setOwner(owner);
 | 
					      dashboard.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (dashboard.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = dashboard.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      dashboard.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(dashboard);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(dashboard);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,11 @@
 | 
				
			|||||||
package org.openmetadata.service.search.indexes;
 | 
					package org.openmetadata.service.search.indexes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static org.openmetadata.service.Entity.*;
 | 
					 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,10 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -32,6 +35,12 @@ public class GlossaryTermIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      glossaryTerm.setOwner(owner);
 | 
					      glossaryTerm.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (glossaryTerm.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = glossaryTerm.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      glossaryTerm.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(glossaryTerm);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(glossaryTerm);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,11 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DESCRIPTION_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -33,6 +37,12 @@ public class MlModelIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      mlModel.setOwner(owner);
 | 
					      mlModel.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (mlModel.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = mlModel.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      mlModel.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(mlModel);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(mlModel);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,11 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DESCRIPTION_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -34,6 +38,12 @@ public class PipelineIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      pipeline.setOwner(owner);
 | 
					      pipeline.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (pipeline.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = pipeline.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      pipeline.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(pipeline);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(pipeline);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,14 @@
 | 
				
			|||||||
package org.openmetadata.service.search.indexes;
 | 
					package org.openmetadata.service.search.indexes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static org.openmetadata.service.Entity.*;
 | 
					 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DESCRIPTION_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -32,6 +38,12 @@ public class SearchEntityIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      searchIndex.setOwner(owner);
 | 
					      searchIndex.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (searchIndex.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = searchIndex.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      searchIndex.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(searchIndex);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(searchIndex);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,9 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -34,6 +36,12 @@ public class StoredProcedureIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      storedProcedure.setOwner(owner);
 | 
					      storedProcedure.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (storedProcedure.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = storedProcedure.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      storedProcedure.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(storedProcedure);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(storedProcedure);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,12 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -42,6 +47,12 @@ public class TableIndex implements ColumnIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      table.setOwner(owner);
 | 
					      table.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (table.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = table.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      table.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(table);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(table);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
    List<SearchSuggest> columnSuggest = new ArrayList<>();
 | 
					    List<SearchSuggest> columnSuggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,9 @@ import java.util.HashMap;
 | 
				
			|||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					import org.openmetadata.common.utils.CommonUtil;
 | 
				
			||||||
import org.openmetadata.schema.entity.classification.Tag;
 | 
					import org.openmetadata.schema.entity.classification.Tag;
 | 
				
			||||||
 | 
					import org.openmetadata.schema.type.EntityReference;
 | 
				
			||||||
import org.openmetadata.service.Entity;
 | 
					import org.openmetadata.service.Entity;
 | 
				
			||||||
import org.openmetadata.service.search.SearchIndexUtils;
 | 
					import org.openmetadata.service.search.SearchIndexUtils;
 | 
				
			||||||
import org.openmetadata.service.search.models.SearchSuggest;
 | 
					import org.openmetadata.service.search.models.SearchSuggest;
 | 
				
			||||||
@ -26,6 +28,12 @@ public class TagIndex implements ElasticSearchIndex {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public Map<String, Object> buildESDoc() {
 | 
					  public Map<String, Object> buildESDoc() {
 | 
				
			||||||
 | 
					    if (tag.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = tag.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      tag.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(tag);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(tag);
 | 
				
			||||||
    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
					    SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,13 @@ package org.openmetadata.service.search.indexes;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
					import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_DISPLAY_NAME;
 | 
				
			||||||
import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
					import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.*;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.ES_MESSAGE_SCHEMA_FIELD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DESCRIPTION_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_DISPLAY_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_NAME_NGRAM;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.NAME_KEYWORD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
@ -39,6 +45,12 @@ public class TopicIndex implements ElasticSearchIndex {
 | 
				
			|||||||
      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
					      owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
 | 
				
			||||||
      topic.setOwner(owner);
 | 
					      topic.setOwner(owner);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (topic.getDomain() != null) {
 | 
				
			||||||
 | 
					      EntityReference domain = topic.getDomain();
 | 
				
			||||||
 | 
					      domain.setDisplayName(
 | 
				
			||||||
 | 
					          CommonUtil.nullOrEmpty(domain.getDisplayName()) ? domain.getName() : domain.getDisplayName());
 | 
				
			||||||
 | 
					      topic.setDomain(domain);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    Map<String, Object> doc = JsonUtils.getMap(topic);
 | 
					    Map<String, Object> doc = JsonUtils.getMap(topic);
 | 
				
			||||||
    List<SearchSuggest> suggest = new ArrayList<>();
 | 
					    List<SearchSuggest> suggest = new ArrayList<>();
 | 
				
			||||||
    List<SearchSuggest> fieldSuggest = new ArrayList<>();
 | 
					    List<SearchSuggest> fieldSuggest = new ArrayList<>();
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@ import static org.openmetadata.service.Entity.FIELD_NAME;
 | 
				
			|||||||
import static org.openmetadata.service.Entity.QUERY;
 | 
					import static org.openmetadata.service.Entity.QUERY;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.COLUMNS_NAME_KEYWORD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.DATA_MODEL_COLUMNS_NAME_KEYWORD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DATA_MODEL_COLUMNS_NAME_KEYWORD;
 | 
				
			||||||
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.DOMAIN_DISPLAY_NAME_KEYWORD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.ES_MESSAGE_SCHEMA_FIELD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.ES_MESSAGE_SCHEMA_FIELD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.ES_TAG_FQN_FIELD;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.ES_TAG_FQN_FIELD;
 | 
				
			||||||
import static org.openmetadata.service.search.EntityBuilderConstant.MAX_AGGREGATE_SIZE;
 | 
					import static org.openmetadata.service.search.EntityBuilderConstant.MAX_AGGREGATE_SIZE;
 | 
				
			||||||
@ -69,6 +70,7 @@ import org.openmetadata.service.search.indexes.GlossaryTermIndex;
 | 
				
			|||||||
import org.openmetadata.service.search.indexes.MlModelIndex;
 | 
					import org.openmetadata.service.search.indexes.MlModelIndex;
 | 
				
			||||||
import org.openmetadata.service.search.indexes.PipelineIndex;
 | 
					import org.openmetadata.service.search.indexes.PipelineIndex;
 | 
				
			||||||
import org.openmetadata.service.search.indexes.QueryIndex;
 | 
					import org.openmetadata.service.search.indexes.QueryIndex;
 | 
				
			||||||
 | 
					import org.openmetadata.service.search.indexes.SearchEntityIndex;
 | 
				
			||||||
import org.openmetadata.service.search.indexes.StoredProcedureIndex;
 | 
					import org.openmetadata.service.search.indexes.StoredProcedureIndex;
 | 
				
			||||||
import org.openmetadata.service.search.indexes.TableIndex;
 | 
					import org.openmetadata.service.search.indexes.TableIndex;
 | 
				
			||||||
import org.openmetadata.service.search.indexes.TagIndex;
 | 
					import org.openmetadata.service.search.indexes.TagIndex;
 | 
				
			||||||
@ -316,6 +318,9 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
      case "domain_search_index":
 | 
					      case "domain_search_index":
 | 
				
			||||||
        searchSourceBuilder = buildDomainsSearch(request.getQuery(), request.getFrom(), request.getSize());
 | 
					        searchSourceBuilder = buildDomainsSearch(request.getQuery(), request.getFrom(), request.getSize());
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					      case "search_entity_index":
 | 
				
			||||||
 | 
					        searchSourceBuilder = buildSearchEntitySearch(request.getQuery(), request.getFrom(), request.getSize());
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
      default:
 | 
					      default:
 | 
				
			||||||
        searchSourceBuilder = buildAggregateSearchBuilder(request.getQuery(), request.getFrom(), request.getSize());
 | 
					        searchSourceBuilder = buildAggregateSearchBuilder(request.getQuery(), request.getFrom(), request.getSize());
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
@ -621,8 +626,8 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    searchSourceBuilder.aggregation(AggregationBuilders.terms("database.name.keyword").field("database.name.keyword"));
 | 
					    searchSourceBuilder.aggregation(AggregationBuilders.terms("database.name.keyword").field("database.name.keyword"));
 | 
				
			||||||
    searchSourceBuilder
 | 
					    searchSourceBuilder
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("databaseSchema.name.keyword").field("databaseSchema.name.keyword"))
 | 
					        .aggregation(AggregationBuilders.terms("databaseSchema.name.keyword").field("databaseSchema.name.keyword"))
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(COLUMNS_NAME_KEYWORD).field(COLUMNS_NAME_KEYWORD));
 | 
					        .aggregation(AggregationBuilders.terms(COLUMNS_NAME_KEYWORD).field(COLUMNS_NAME_KEYWORD))
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms("tableType").field("tableType"));
 | 
				
			||||||
    return addAggregation(searchSourceBuilder);
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -660,11 +665,8 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
    SearchSourceBuilder searchSourceBuilder =
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
    searchSourceBuilder
 | 
					    searchSourceBuilder.aggregation(AggregationBuilders.terms("glossary.name.keyword").field("glossary.name.keyword"));
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(ES_TAG_FQN_FIELD).field(ES_TAG_FQN_FIELD).size(MAX_AGGREGATE_SIZE))
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("glossary.name.keyword").field("glossary.name.keyword"))
 | 
					 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(OWNER_DISPLAY_NAME_KEYWORD).field(OWNER_DISPLAY_NAME_KEYWORD));
 | 
					 | 
				
			||||||
    return searchSourceBuilder;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildTagSearchBuilder(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildTagSearchBuilder(String query, int from, int size) {
 | 
				
			||||||
@ -686,8 +688,11 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.field(highlightTagName);
 | 
					    hb.field(highlightTagName);
 | 
				
			||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size)
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("classification.name.keyword").field("classification.name.keyword"));
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    searchSourceBuilder.aggregation(
 | 
				
			||||||
 | 
					        AggregationBuilders.terms("classification.name.keyword").field("classification.name.keyword"));
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildContainerSearchBuilder(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildContainerSearchBuilder(String query, int from, int size) {
 | 
				
			||||||
@ -787,7 +792,9 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size);
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildDashboardDataModelsSearch(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildDashboardDataModelsSearch(String query, int from, int size) {
 | 
				
			||||||
@ -808,7 +815,13 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    hb.preTags(PRE_TAG);
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
    hb.postTags(POST_TAG);
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return searchBuilder(queryBuilder, hb, from, size);
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    searchSourceBuilder
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms("dataModelType").field("dataModelType"))
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms(COLUMNS_NAME_KEYWORD).field(COLUMNS_NAME_KEYWORD))
 | 
				
			||||||
 | 
					        .aggregation(AggregationBuilders.terms("project.keyword").field("project.keyword"));
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildDomainsSearch(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildDomainsSearch(String query, int from, int size) {
 | 
				
			||||||
@ -832,6 +845,30 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
    return searchBuilder(queryBuilder, hb, from, size);
 | 
					    return searchBuilder(queryBuilder, hb, from, size);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private static SearchSourceBuilder buildSearchEntitySearch(String query, int from, int size) {
 | 
				
			||||||
 | 
					    QueryStringQueryBuilder queryBuilder =
 | 
				
			||||||
 | 
					        QueryBuilders.queryStringQuery(query)
 | 
				
			||||||
 | 
					            .fields(SearchEntityIndex.getFields())
 | 
				
			||||||
 | 
					            .defaultOperator(Operator.AND)
 | 
				
			||||||
 | 
					            .fuzziness(Fuzziness.AUTO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    HighlightBuilder.Field highlightDescription = new HighlightBuilder.Field(FIELD_DESCRIPTION);
 | 
				
			||||||
 | 
					    highlightDescription.highlighterType(UNIFIED);
 | 
				
			||||||
 | 
					    HighlightBuilder.Field highlightName = new HighlightBuilder.Field(FIELD_NAME);
 | 
				
			||||||
 | 
					    highlightName.highlighterType(UNIFIED);
 | 
				
			||||||
 | 
					    HighlightBuilder hb = new HighlightBuilder();
 | 
				
			||||||
 | 
					    hb.field(highlightDescription);
 | 
				
			||||||
 | 
					    hb.field(highlightName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    hb.preTags(PRE_TAG);
 | 
				
			||||||
 | 
					    hb.postTags(POST_TAG);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SearchSourceBuilder searchSourceBuilder =
 | 
				
			||||||
 | 
					        new SearchSourceBuilder().query(queryBuilder).highlighter(hb).from(from).size(size);
 | 
				
			||||||
 | 
					    searchSourceBuilder.aggregation(AggregationBuilders.terms("fields.name.keyword").field("fields.name.keyword"));
 | 
				
			||||||
 | 
					    return addAggregation(searchSourceBuilder);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static SearchSourceBuilder buildAggregateSearchBuilder(String query, int from, int size) {
 | 
					  private static SearchSourceBuilder buildAggregateSearchBuilder(String query, int from, int size) {
 | 
				
			||||||
    QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(query).lenient(true);
 | 
					    QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(query).lenient(true);
 | 
				
			||||||
    SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size);
 | 
					    SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size);
 | 
				
			||||||
@ -845,11 +882,15 @@ public class OpenSearchClientImpl implements SearchClient {
 | 
				
			|||||||
            AggregationBuilders.terms("service.name.keyword").field("service.name.keyword").size(MAX_AGGREGATE_SIZE))
 | 
					            AggregationBuilders.terms("service.name.keyword").field("service.name.keyword").size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(
 | 
					        .aggregation(
 | 
				
			||||||
            AggregationBuilders.terms("entityType.keyword").field("entityType.keyword").size(MAX_AGGREGATE_SIZE))
 | 
					            AggregationBuilders.terms("entityType.keyword").field("entityType.keyword").size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms("tier.tagFQN").field("tier.tagFQN"))
 | 
					        .aggregation(AggregationBuilders.terms("tier.tagFQN").field("tier.tagFQN").size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(
 | 
					        .aggregation(
 | 
				
			||||||
            AggregationBuilders.terms(OWNER_DISPLAY_NAME_KEYWORD)
 | 
					            AggregationBuilders.terms(OWNER_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
                .field(OWNER_DISPLAY_NAME_KEYWORD)
 | 
					                .field(OWNER_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
                .size(MAX_AGGREGATE_SIZE))
 | 
					                .size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
 | 
					        .aggregation(
 | 
				
			||||||
 | 
					            AggregationBuilders.terms(DOMAIN_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
 | 
					                .field(DOMAIN_DISPLAY_NAME_KEYWORD)
 | 
				
			||||||
 | 
					                .size(MAX_AGGREGATE_SIZE))
 | 
				
			||||||
        .aggregation(AggregationBuilders.terms(ES_TAG_FQN_FIELD).field(ES_TAG_FQN_FIELD));
 | 
					        .aggregation(AggregationBuilders.terms(ES_TAG_FQN_FIELD).field(ES_TAG_FQN_FIELD));
 | 
				
			||||||
    return builder;
 | 
					    return builder;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -272,7 +272,13 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "project": {
 | 
					      "project": {
 | 
				
			||||||
        "type": "text"
 | 
					        "type": "text",
 | 
				
			||||||
 | 
					        "fields": {
 | 
				
			||||||
 | 
					          "keyword": {
 | 
				
			||||||
 | 
					            "type": "keyword",
 | 
				
			||||||
 | 
					            "ignore_above": 256
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "lifeCycle": {
 | 
					      "lifeCycle": {
 | 
				
			||||||
        "type": "object"
 | 
					        "type": "object"
 | 
				
			||||||
 | 
				
			|||||||
@ -92,6 +92,9 @@
 | 
				
			|||||||
      "sourceUrl": {
 | 
					      "sourceUrl": {
 | 
				
			||||||
        "type": "keyword"
 | 
					        "type": "keyword"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					      "tableType": {
 | 
				
			||||||
 | 
					        "type": "keyword"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      "columns": {
 | 
					      "columns": {
 | 
				
			||||||
        "properties": {
 | 
					        "properties": {
 | 
				
			||||||
          "name": {
 | 
					          "name": {
 | 
				
			||||||
 | 
				
			|||||||
@ -280,7 +280,13 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "project": {
 | 
					      "project": {
 | 
				
			||||||
        "type": "text"
 | 
					        "type": "text",
 | 
				
			||||||
 | 
					        "fields": {
 | 
				
			||||||
 | 
					          "keyword": {
 | 
				
			||||||
 | 
					            "type": "keyword",
 | 
				
			||||||
 | 
					            "ignore_above": 256
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "lifeCycle": {
 | 
					      "lifeCycle": {
 | 
				
			||||||
        "type": "object"
 | 
					        "type": "object"
 | 
				
			||||||
 | 
				
			|||||||
@ -111,6 +111,9 @@
 | 
				
			|||||||
      "sourceUrl": {
 | 
					      "sourceUrl": {
 | 
				
			||||||
        "type": "keyword"
 | 
					        "type": "keyword"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					      "tableType": {
 | 
				
			||||||
 | 
					        "type": "keyword"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      "columns": {
 | 
					      "columns": {
 | 
				
			||||||
        "properties": {
 | 
					        "properties": {
 | 
				
			||||||
          "name": {
 | 
					          "name": {
 | 
				
			||||||
 | 
				
			|||||||
@ -259,7 +259,13 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "project": {
 | 
					      "project": {
 | 
				
			||||||
        "type": "text"
 | 
					        "type": "text",
 | 
				
			||||||
 | 
					        "fields": {
 | 
				
			||||||
 | 
					          "keyword": {
 | 
				
			||||||
 | 
					            "type": "keyword",
 | 
				
			||||||
 | 
					            "ignore_above": 256
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "lifeCycle": {
 | 
					      "lifeCycle": {
 | 
				
			||||||
        "type": "object"
 | 
					        "type": "object"
 | 
				
			||||||
 | 
				
			|||||||
@ -76,6 +76,9 @@
 | 
				
			|||||||
      "sourceUrl": {
 | 
					      "sourceUrl": {
 | 
				
			||||||
        "type": "keyword"
 | 
					        "type": "keyword"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					      "tableType": {
 | 
				
			||||||
 | 
					        "type": "keyword"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      "columns": {
 | 
					      "columns": {
 | 
				
			||||||
        "properties": {
 | 
					        "properties": {
 | 
				
			||||||
          "name": {
 | 
					          "name": {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user