mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-24 17:08:28 +00:00
Search Index read entities from index mapping (#19084)
This commit is contained in:
parent
57e814c15d
commit
2888e37998
@ -1,47 +1,8 @@
|
|||||||
package org.openmetadata.service.apps.bundles.searchIndex;
|
package org.openmetadata.service.apps.bundles.searchIndex;
|
||||||
|
|
||||||
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
|
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
|
||||||
import static org.openmetadata.service.Entity.API_COLLCECTION;
|
|
||||||
import static org.openmetadata.service.Entity.API_ENDPOINT;
|
|
||||||
import static org.openmetadata.service.Entity.API_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.CHART;
|
|
||||||
import static org.openmetadata.service.Entity.CLASSIFICATION;
|
|
||||||
import static org.openmetadata.service.Entity.CONTAINER;
|
|
||||||
import static org.openmetadata.service.Entity.DASHBOARD;
|
|
||||||
import static org.openmetadata.service.Entity.DASHBOARD_DATA_MODEL;
|
|
||||||
import static org.openmetadata.service.Entity.DASHBOARD_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.DATABASE;
|
|
||||||
import static org.openmetadata.service.Entity.DATABASE_SCHEMA;
|
|
||||||
import static org.openmetadata.service.Entity.DATABASE_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.DATA_PRODUCT;
|
|
||||||
import static org.openmetadata.service.Entity.DOMAIN;
|
|
||||||
import static org.openmetadata.service.Entity.ENTITY_REPORT_DATA;
|
|
||||||
import static org.openmetadata.service.Entity.GLOSSARY;
|
|
||||||
import static org.openmetadata.service.Entity.GLOSSARY_TERM;
|
|
||||||
import static org.openmetadata.service.Entity.INGESTION_PIPELINE;
|
|
||||||
import static org.openmetadata.service.Entity.MESSAGING_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.METADATA_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.METRIC;
|
|
||||||
import static org.openmetadata.service.Entity.MLMODEL;
|
|
||||||
import static org.openmetadata.service.Entity.MLMODEL_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.PIPELINE;
|
|
||||||
import static org.openmetadata.service.Entity.PIPELINE_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.QUERY;
|
|
||||||
import static org.openmetadata.service.Entity.SEARCH_INDEX;
|
|
||||||
import static org.openmetadata.service.Entity.SEARCH_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.STORAGE_SERVICE;
|
|
||||||
import static org.openmetadata.service.Entity.STORED_PROCEDURE;
|
|
||||||
import static org.openmetadata.service.Entity.TABLE;
|
|
||||||
import static org.openmetadata.service.Entity.TAG;
|
|
||||||
import static org.openmetadata.service.Entity.TEAM;
|
|
||||||
import static org.openmetadata.service.Entity.TEST_CASE;
|
|
||||||
import static org.openmetadata.service.Entity.TEST_CASE_RESOLUTION_STATUS;
|
import static org.openmetadata.service.Entity.TEST_CASE_RESOLUTION_STATUS;
|
||||||
import static org.openmetadata.service.Entity.TEST_CASE_RESULT;
|
import static org.openmetadata.service.Entity.TEST_CASE_RESULT;
|
||||||
import static org.openmetadata.service.Entity.TEST_SUITE;
|
|
||||||
import static org.openmetadata.service.Entity.TOPIC;
|
|
||||||
import static org.openmetadata.service.Entity.USER;
|
|
||||||
import static org.openmetadata.service.Entity.WEB_ANALYTIC_ENTITY_VIEW_REPORT_DATA;
|
|
||||||
import static org.openmetadata.service.Entity.WEB_ANALYTIC_USER_ACTIVITY_REPORT_DATA;
|
|
||||||
import static org.openmetadata.service.apps.scheduler.AbstractOmAppJobListener.APP_RUN_STATS;
|
import static org.openmetadata.service.apps.scheduler.AbstractOmAppJobListener.APP_RUN_STATS;
|
||||||
import static org.openmetadata.service.apps.scheduler.AbstractOmAppJobListener.WEBSOCKET_STATUS_CHANNEL;
|
import static org.openmetadata.service.apps.scheduler.AbstractOmAppJobListener.WEBSOCKET_STATUS_CHANNEL;
|
||||||
import static org.openmetadata.service.apps.scheduler.AppScheduler.ON_DEMAND_JOB;
|
import static org.openmetadata.service.apps.scheduler.AppScheduler.ON_DEMAND_JOB;
|
||||||
@ -99,53 +60,8 @@ import org.quartz.JobExecutionContext;
|
|||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SearchIndexApp extends AbstractNativeApplication {
|
public class SearchIndexApp extends AbstractNativeApplication {
|
||||||
|
|
||||||
private static final String ALL = "all";
|
private static final String ALL = "all";
|
||||||
|
|
||||||
public static final Set<String> ALL_ENTITIES =
|
|
||||||
Set.of(
|
|
||||||
TABLE,
|
|
||||||
DASHBOARD,
|
|
||||||
TOPIC,
|
|
||||||
PIPELINE,
|
|
||||||
INGESTION_PIPELINE,
|
|
||||||
SEARCH_INDEX,
|
|
||||||
USER,
|
|
||||||
TEAM,
|
|
||||||
GLOSSARY,
|
|
||||||
GLOSSARY_TERM,
|
|
||||||
MLMODEL,
|
|
||||||
TAG,
|
|
||||||
CLASSIFICATION,
|
|
||||||
QUERY,
|
|
||||||
CONTAINER,
|
|
||||||
DATABASE,
|
|
||||||
DATABASE_SCHEMA,
|
|
||||||
TEST_CASE,
|
|
||||||
TEST_SUITE,
|
|
||||||
CHART,
|
|
||||||
DASHBOARD_DATA_MODEL,
|
|
||||||
DATABASE_SERVICE,
|
|
||||||
MESSAGING_SERVICE,
|
|
||||||
DASHBOARD_SERVICE,
|
|
||||||
PIPELINE_SERVICE,
|
|
||||||
MLMODEL_SERVICE,
|
|
||||||
STORAGE_SERVICE,
|
|
||||||
METADATA_SERVICE,
|
|
||||||
SEARCH_SERVICE,
|
|
||||||
ENTITY_REPORT_DATA,
|
|
||||||
WEB_ANALYTIC_ENTITY_VIEW_REPORT_DATA,
|
|
||||||
WEB_ANALYTIC_USER_ACTIVITY_REPORT_DATA,
|
|
||||||
DOMAIN,
|
|
||||||
STORED_PROCEDURE,
|
|
||||||
DATA_PRODUCT,
|
|
||||||
TEST_CASE_RESOLUTION_STATUS,
|
|
||||||
TEST_CASE_RESULT,
|
|
||||||
API_SERVICE,
|
|
||||||
API_ENDPOINT,
|
|
||||||
API_COLLCECTION,
|
|
||||||
METRIC);
|
|
||||||
|
|
||||||
public static final Set<String> TIME_SERIES_ENTITIES =
|
public static final Set<String> TIME_SERIES_ENTITIES =
|
||||||
Set.of(
|
Set.of(
|
||||||
ReportData.ReportDataType.ENTITY_REPORT_DATA.value(),
|
ReportData.ReportDataType.ENTITY_REPORT_DATA.value(),
|
||||||
@ -180,8 +96,9 @@ public class SearchIndexApp extends AbstractNativeApplication {
|
|||||||
JsonUtils.convertValue(app.getAppConfiguration(), EventPublisherJob.class)
|
JsonUtils.convertValue(app.getAppConfiguration(), EventPublisherJob.class)
|
||||||
.withStats(new Stats());
|
.withStats(new Stats());
|
||||||
|
|
||||||
if (request.getEntities().contains(ALL)) {
|
if (request.getEntities().size() == 1 && request.getEntities().contains(ALL)) {
|
||||||
request.setEntities(ALL_ENTITIES);
|
SearchRepository searchRepo = Entity.getSearchRepo();
|
||||||
|
request.setEntities(searchRepo.getSearchEntities());
|
||||||
}
|
}
|
||||||
|
|
||||||
jobData = request;
|
jobData = request;
|
||||||
|
@ -38,6 +38,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1057,4 +1058,8 @@ public class SearchRepository {
|
|||||||
}
|
}
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<String> getSearchEntities() {
|
||||||
|
return new HashSet<>(entityIndexMap.keySet());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,46 +66,48 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"table",
|
"table",
|
||||||
"dashboard",
|
|
||||||
"topic",
|
|
||||||
"pipeline",
|
|
||||||
"ingestionPipeline",
|
|
||||||
"searchIndex",
|
|
||||||
"user",
|
|
||||||
"team",
|
|
||||||
"glossary",
|
|
||||||
"glossaryTerm",
|
|
||||||
"mlmodel",
|
|
||||||
"tag",
|
|
||||||
"classification",
|
|
||||||
"query",
|
|
||||||
"container",
|
|
||||||
"database",
|
|
||||||
"databaseSchema",
|
"databaseSchema",
|
||||||
"testCase",
|
"container",
|
||||||
"testSuite",
|
"testSuite",
|
||||||
"chart",
|
|
||||||
"dashboardDataModel",
|
|
||||||
"databaseService",
|
|
||||||
"messagingService",
|
|
||||||
"dashboardService",
|
|
||||||
"pipelineService",
|
|
||||||
"mlmodelService",
|
"mlmodelService",
|
||||||
"storageService",
|
"pipelineService",
|
||||||
|
"messagingService",
|
||||||
|
"entityReportData",
|
||||||
|
"ingestionPipeline",
|
||||||
|
"database",
|
||||||
"metadataService",
|
"metadataService",
|
||||||
"searchService",
|
"searchService",
|
||||||
"entityReportData",
|
"aggregatedCostAnalysisReportData",
|
||||||
|
"tag",
|
||||||
|
"dashboard",
|
||||||
|
"rawCostAnalysisReportData",
|
||||||
"webAnalyticEntityViewReportData",
|
"webAnalyticEntityViewReportData",
|
||||||
"webAnalyticUserActivityReportData",
|
|
||||||
"domain",
|
|
||||||
"storedProcedure",
|
"storedProcedure",
|
||||||
"dataProduct",
|
"dataProduct",
|
||||||
"testCaseResolutionStatus",
|
"databaseService",
|
||||||
"testCaseResult",
|
"dashboardService",
|
||||||
|
"query",
|
||||||
"apiService",
|
"apiService",
|
||||||
"apiEndpoint",
|
"searchIndex",
|
||||||
|
"testCaseResult",
|
||||||
"apiCollection",
|
"apiCollection",
|
||||||
"metric"
|
"team",
|
||||||
|
"mlmodel",
|
||||||
|
"classification",
|
||||||
|
"glossaryTerm",
|
||||||
|
"testCaseResolutionStatus",
|
||||||
|
"dashboardDataModel",
|
||||||
|
"pipeline",
|
||||||
|
"glossary",
|
||||||
|
"apiEndpoint",
|
||||||
|
"storageService",
|
||||||
|
"metric",
|
||||||
|
"webAnalyticUserActivityReportData",
|
||||||
|
"domain",
|
||||||
|
"topic",
|
||||||
|
"chart",
|
||||||
|
"user",
|
||||||
|
"testCase"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default": ["all"],
|
"default": ["all"],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user