fix suggest api bug for new indexes.. added entityType for new Indexes (#13192)

This commit is contained in:
07Himank 2023-09-14 19:59:05 +05:30 committed by GitHub
parent 5edad7b418
commit ae55b81a36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
73 changed files with 932 additions and 28 deletions

View File

@ -139,7 +139,7 @@ public class IndexUtil {
} else if (type.equalsIgnoreCase(Entity.DATABASE_SERVICE)) {
return SearchIndexDefinition.ElasticSearchIndexType.DATABASE_SERVICE_SEARCH_INDEX;
} else if (type.equalsIgnoreCase(Entity.SEARCH_INDEX)) {
return SearchIndexDefinition.ElasticSearchIndexType.SEARCH_INDEX_SEARCH;
return SearchIndexDefinition.ElasticSearchIndexType.SEARCH_ENTITY_INDEX_SEARCH;
} else if (type.equalsIgnoreCase(Entity.SEARCH_SERVICE)) {
return SearchIndexDefinition.ElasticSearchIndexType.SEARCH_SERVICE_SEARCH_INDEX;
} else if (type.equalsIgnoreCase(Entity.DOMAIN)) {

View File

@ -99,7 +99,8 @@ public class SearchIndexDefinition {
SEARCH_SERVICE_SEARCH_INDEX(
Entity.SEARCH_SERVICE, "search_service_search_index", "/elasticsearch/%s/search_service_index_mapping.json"),
SEARCH_INDEX_SEARCH(Entity.SEARCH_INDEX, "search_index", "/elasticsearch/%s/search_index_mapping.json"),
SEARCH_ENTITY_INDEX_SEARCH(
Entity.SEARCH_INDEX, "search_entity_index", "/elasticsearch/%s/search_entity_index_mapping.json"),
DOMAIN_SEARCH_INDEX(Entity.DOMAIN, "domain_search_index", "/elasticsearch/%s/domain_index_mapping.json"),
WEB_ANALYTIC_ENTITY_VIEW_REPORT_DATA_INDEX(
Entity.WEB_ANALYTIC_EVENT,

View File

@ -48,7 +48,7 @@ import org.openmetadata.service.search.indexes.MlModelServiceIndex;
import org.openmetadata.service.search.indexes.PipelineIndex;
import org.openmetadata.service.search.indexes.PipelineServiceIndex;
import org.openmetadata.service.search.indexes.QueryIndex;
import org.openmetadata.service.search.indexes.SearchIndex;
import org.openmetadata.service.search.indexes.SearchEntityIndex;
import org.openmetadata.service.search.indexes.SearchServiceIndex;
import org.openmetadata.service.search.indexes.StoredProcedureIndex;
import org.openmetadata.service.search.indexes.TableIndex;
@ -112,7 +112,7 @@ public class SearchIndexFactory {
case Entity.SEARCH_SERVICE:
return new SearchServiceIndex((SearchService) entity);
case Entity.SEARCH_INDEX:
return new SearchIndex((org.openmetadata.schema.entity.data.SearchIndex) entity);
return new SearchEntityIndex((org.openmetadata.schema.entity.data.SearchIndex) entity);
case Entity.PIPELINE_SERVICE:
return new PipelineServiceIndex((PipelineService) entity);
case Entity.DOMAIN:

View File

@ -342,7 +342,8 @@ public class ElasticSearchClientImpl implements SearchClient {
}
/* For backward-compatibility we continue supporting the deleted argument, this should be removed in future versions */
if (request.getIndex().equalsIgnoreCase("domain_search_index")) {
if (request.getIndex().equalsIgnoreCase("domain_search_index")
|| request.getIndex().equalsIgnoreCase("data_products_search_index")) {
searchSourceBuilder.query(QueryBuilders.boolQuery().must(searchSourceBuilder.query()));
} else {
searchSourceBuilder.query(

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.data.Chart;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class ChartIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class ChartIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (chart.getOwner() != null) {
EntityReference owner = chart.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
chart.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(chart);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(chart.getName()).weight(10).build());
suggest.add(SearchSuggest.builder().input(chart.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.CHART);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.classification.Classification;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class ClassificationIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class ClassificationIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (classification.getOwner() != null) {
EntityReference owner = classification.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
classification.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(classification);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(classification.getName()).weight(10).build());
suggest.add(SearchSuggest.builder().input(classification.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.CLASSIFICATION);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.data.DashboardDataModel;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class DashboardDataModelIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class DashboardDataModelIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (dashboardDataModel.getOwner() != null) {
EntityReference owner = dashboardDataModel.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
dashboardDataModel.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(dashboardDataModel);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(dashboardDataModel.getName()).weight(10).build());
suggest.add(SearchSuggest.builder().input(dashboardDataModel.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.DASHBOARD_DATA_MODEL);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.services.DashboardService;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class DashboardServiceIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class DashboardServiceIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (dashboardService.getOwner() != null) {
EntityReference owner = dashboardService.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
dashboardService.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(dashboardService);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(dashboardService.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(dashboardService.getDisplayName()).weight(10).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.DASHBOARD_SERVICE);
return doc;
}
}

View File

@ -2,7 +2,10 @@ package org.openmetadata.service.search.indexes;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.domains.DataProduct;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.util.JsonUtils;
@ -17,8 +20,14 @@ public class DataProductIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (dataProduct.getOwner() != null) {
EntityReference owner = dataProduct.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
dataProduct.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(dataProduct);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
doc.put("entityType", Entity.DATA_PRODUCT);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.data.Database;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class DatabaseIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class DatabaseIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (database.getOwner() != null) {
EntityReference owner = database.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
database.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(database);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(database.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(database.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.DATABASE);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.data.DatabaseSchema;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class DatabaseSchemaIndex implements ElasticSearchIndex {
@ -16,8 +21,18 @@ public class DatabaseSchemaIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (databaseSchema.getOwner() != null) {
EntityReference owner = databaseSchema.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
databaseSchema.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(databaseSchema);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(databaseSchema.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(databaseSchema.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.DATABASE_SCHEMA);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.services.DatabaseService;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class DatabaseServiceIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class DatabaseServiceIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (databaseService.getOwner() != null) {
EntityReference owner = databaseService.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
databaseService.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(databaseService);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(databaseService.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(databaseService.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.DASHBOARD_SERVICE);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.domains.Domain;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class DomainIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class DomainIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (domain.getOwner() != null) {
EntityReference owner = domain.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
domain.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(domain);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(domain.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(domain.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.DOMAIN);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.services.MessagingService;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class MessagingServiceIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class MessagingServiceIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (messagingService.getOwner() != null) {
EntityReference owner = messagingService.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
messagingService.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(messagingService);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(messagingService.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(messagingService.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.MESSAGING_SERVICE);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.services.MlModelService;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class MlModelServiceIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class MlModelServiceIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (mlModelService.getOwner() != null) {
EntityReference owner = mlModelService.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
mlModelService.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(mlModelService);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(mlModelService.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(mlModelService.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.MLMODEL_SERVICE);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.services.PipelineService;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class PipelineServiceIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class PipelineServiceIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (pipelineService.getOwner() != null) {
EntityReference owner = pipelineService.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
pipelineService.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(pipelineService);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(pipelineService.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(pipelineService.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.PIPELINE_SERVICE);
return doc;
}
}

View File

@ -0,0 +1,38 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class SearchEntityIndex implements ElasticSearchIndex {
final org.openmetadata.schema.entity.data.SearchIndex searchIndex;
private static final List<String> excludeFields = List.of("changeDescription");
public SearchEntityIndex(org.openmetadata.schema.entity.data.SearchIndex searchIndex) {
this.searchIndex = searchIndex;
}
public Map<String, Object> buildESDoc() {
if (searchIndex.getOwner() != null) {
EntityReference owner = searchIndex.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
searchIndex.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(searchIndex);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(searchIndex.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(searchIndex.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.SEARCH_INDEX);
return doc;
}
}

View File

@ -1,23 +0,0 @@
package org.openmetadata.service.search.indexes;
import java.util.List;
import java.util.Map;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.util.JsonUtils;
public class SearchIndex implements ElasticSearchIndex {
final org.openmetadata.schema.entity.data.SearchIndex searchIndex;
private static final List<String> excludeFields = List.of("changeDescription");
public SearchIndex(org.openmetadata.schema.entity.data.SearchIndex searchIndex) {
this.searchIndex = searchIndex;
}
public Map<String, Object> buildESDoc() {
Map<String, Object> doc = JsonUtils.getMap(searchIndex);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
return doc;
}
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.services.SearchService;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class SearchServiceIndex implements ElasticSearchIndex {
@ -17,8 +22,18 @@ public class SearchServiceIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (searchService.getOwner() != null) {
EntityReference owner = searchService.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
searchService.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(searchService);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(searchService.getName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(searchService.getFullyQualifiedName()).weight(5).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.SEARCH_SERVICE);
return doc;
}
}

View File

@ -1,9 +1,24 @@
package org.openmetadata.service.search.indexes;
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
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.NAME_KEYWORD;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.entity.data.StoredProcedure;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class StoredProcedureIndex implements ElasticSearchIndex {
@ -17,8 +32,31 @@ public class StoredProcedureIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (storedProcedure.getOwner() != null) {
EntityReference owner = storedProcedure.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
storedProcedure.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(storedProcedure);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(storedProcedure.getFullyQualifiedName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(storedProcedure.getName()).weight(10).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.STORED_PROCEDURE);
return doc;
}
public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>();
fields.put(FIELD_DISPLAY_NAME, 15.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(FIELD_NAME, 15.0f);
fields.put(FIELD_NAME_NGRAM, 1.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(FIELD_DESCRIPTION_NGRAM, 1.0f);
return fields;
}
}

View File

@ -9,12 +9,14 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import lombok.SneakyThrows;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.tests.TestCase;
import org.openmetadata.schema.tests.TestSuite;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.schema.type.Include;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class TestCaseIndex implements ElasticSearchIndex {
@ -28,6 +30,11 @@ public class TestCaseIndex implements ElasticSearchIndex {
@SneakyThrows
public Map<String, Object> buildESDoc() {
if (testCase.getOwner() != null) {
EntityReference owner = testCase.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
testCase.setOwner(owner);
}
List<TestSuite> testSuiteArray = new ArrayList<>();
if (testCase.getTestSuites() != null) {
for (TestSuite suite : testCase.getTestSuites()) {
@ -38,6 +45,11 @@ public class TestCaseIndex implements ElasticSearchIndex {
testCase.setTestSuites(testSuiteArray);
Map<String, Object> doc = JsonUtils.getMap(testCase);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(testCase.getFullyQualifiedName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(testCase.getName()).weight(10).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.TEST_CASE);
return doc;
}

View File

@ -1,9 +1,14 @@
package org.openmetadata.service.search.indexes;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.tests.TestSuite;
import org.openmetadata.schema.type.EntityReference;
import org.openmetadata.service.Entity;
import org.openmetadata.service.search.SearchIndexUtils;
import org.openmetadata.service.search.models.SearchSuggest;
import org.openmetadata.service.util.JsonUtils;
public class TestSuiteIndex implements ElasticSearchIndex {
@ -16,8 +21,18 @@ public class TestSuiteIndex implements ElasticSearchIndex {
}
public Map<String, Object> buildESDoc() {
if (testSuite.getOwner() != null) {
EntityReference owner = testSuite.getOwner();
owner.setDisplayName(CommonUtil.nullOrEmpty(owner.getDisplayName()) ? owner.getName() : owner.getDisplayName());
testSuite.setOwner(owner);
}
Map<String, Object> doc = JsonUtils.getMap(testSuite);
SearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<SearchSuggest> suggest = new ArrayList<>();
suggest.add(SearchSuggest.builder().input(testSuite.getFullyQualifiedName()).weight(5).build());
suggest.add(SearchSuggest.builder().input(testSuite.getName()).weight(10).build());
doc.put("suggest", suggest);
doc.put("entityType", Entity.TEST_SUITE);
return doc;
}
}

View File

@ -101,6 +101,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -72,6 +72,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"description": {
"type": "text",
"analyzer": "om_analyzer",

View File

@ -95,6 +95,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -125,6 +125,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -82,6 +82,9 @@
}
}
},
"entityType": {
"type": "keyword"
},
"version": {
"type": "float"
},

View File

@ -72,6 +72,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"description": {
"type": "text",
"analyzer": "om_analyzer",

View File

@ -95,6 +95,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"domain" : {
"properties": {
"id": {

View File

@ -122,6 +122,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -85,6 +85,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -117,6 +117,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -85,6 +85,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -79,6 +79,19 @@
"updatedBy": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -92,6 +92,19 @@
"updatedBy": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"service": {
"properties": {
"id": {

View File

@ -85,6 +85,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"pipelines": {
"properties": {
"id": {

View File

@ -295,6 +295,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"followers": {
"type": "keyword"
},

View File

@ -171,6 +171,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -78,6 +78,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"deleted": {
"type": "text"
},

View File

@ -85,6 +85,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -85,6 +85,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -85,6 +85,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -72,6 +72,19 @@
"type": "text",
"analyzer": "om_analyzer_jp"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"pipelines": {
"properties": {
"id": {

View File

@ -92,6 +92,9 @@
}
}
},
"entityType": {
"type": "keyword"
},
"version": {
"type": "float"
},

View File

@ -151,6 +151,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -105,6 +105,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"domain" : {
"properties": {
"id": {

View File

@ -61,6 +61,19 @@
"type": "keyword",
"normalizer": "lowercase_normalizer"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"displayName": {
"type": "text",
"analyzer": "om_analyzer_jp",

View File

@ -101,6 +101,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -120,6 +120,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -88,6 +88,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -175,6 +175,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"href": {
"type": "text"
},

View File

@ -135,6 +135,19 @@
"serviceType": {
"type": "keyword"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -125,6 +125,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -108,6 +108,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"databaseSchema": {
"properties": {
"id": {

View File

@ -181,6 +181,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -81,6 +81,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"deleted": {
"type": "text"
},

View File

@ -62,6 +62,19 @@
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -58,6 +58,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"description": {
"type": "text",
"analyzer": "ik_max_word",

View File

@ -76,6 +76,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -118,6 +118,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -76,6 +76,9 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"owner": {
"properties": {
"id": {

View File

@ -57,6 +57,19 @@
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -75,6 +75,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"domain" : {
"properties": {
"id": {

View File

@ -103,6 +103,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -79,6 +79,19 @@
"href": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -64,6 +64,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"pipelines": {
"properties": {
"id": {

View File

@ -76,6 +76,19 @@
"updatedBy": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"pipelines": {
"properties": {
"id": {

View File

@ -72,6 +72,19 @@
"updatedBy": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"tags": {
"properties": {
"tagFQN": {

View File

@ -113,6 +113,19 @@
"serviceType": {
"type": "keyword"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -122,6 +122,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"version": {
"type": "float"
},

View File

@ -230,6 +230,19 @@
"deleted": {
"type": "text"
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -171,6 +171,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"owner": {
"properties": {
"id": {

View File

@ -63,6 +63,19 @@
}
}
},
"entityType": {
"type": "keyword"
},
"suggest": {
"type": "completion",
"contexts": [
{
"name": "deleted",
"type": "category",
"path": "deleted"
}
]
},
"deleted": {
"type": "text"
},