ui & backend: explore page count was not showing properly (#14013)

This commit is contained in:
Shailesh Parmar 2023-11-17 21:48:59 +05:30 committed by GitHub
parent 9f1f830775
commit efb6c5f221
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 98 additions and 268 deletions

View File

@ -144,6 +144,7 @@ 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.SearchEntityIndex;
import org.openmetadata.service.search.indexes.SearchIndex;
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;
@ -344,7 +345,17 @@ public class ElasticSearchClient implements SearchClient {
} }
/* For backward-compatibility we continue supporting the deleted argument, this should be removed in future versions */ /* 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("all")) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.should(
QueryBuilders.boolQuery()
.must(searchSourceBuilder.query())
.must(QueryBuilders.existsQuery("deleted"))
.must(QueryBuilders.termQuery("deleted", request.deleted())));
boolQueryBuilder.should(
QueryBuilders.boolQuery().must(searchSourceBuilder.query()).mustNot(QueryBuilders.existsQuery("deleted")));
searchSourceBuilder.query(boolQueryBuilder);
} else if (request.getIndex().equalsIgnoreCase("domain_search_index")
|| request.getIndex().equalsIgnoreCase("data_product_search_index") || request.getIndex().equalsIgnoreCase("data_product_search_index")
|| request.getIndex().equalsIgnoreCase("query_search_index") || request.getIndex().equalsIgnoreCase("query_search_index")
|| request.getIndex().equalsIgnoreCase("raw_cost_analysis_report_data_index") || request.getIndex().equalsIgnoreCase("raw_cost_analysis_report_data_index")
@ -894,7 +905,8 @@ public class ElasticSearchClient implements SearchClient {
} }
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).fields(SearchIndex.getDefaultFields()).lenient(true);
SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size); SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size);
return addAggregation(searchSourceBuilder); return addAggregation(searchSourceBuilder);
} }

View File

@ -1,16 +1,8 @@
package org.openmetadata.service.search.indexes; 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.DATA_MODEL_COLUMNS_NAME_KEYWORD; 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.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -84,14 +76,7 @@ public class ContainerIndex implements ColumnIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 15.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(FIELD_NAME, 15.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put("dataModel.columns.name", 2.0f); fields.put("dataModel.columns.name", 2.0f);
fields.put(DATA_MODEL_COLUMNS_NAME_KEYWORD, 10.0f); fields.put(DATA_MODEL_COLUMNS_NAME_KEYWORD, 10.0f);
fields.put("dataModel.columns.name.ngram", 1.0f); fields.put("dataModel.columns.name.ngram", 1.0f);

View File

@ -1,17 +1,8 @@
package org.openmetadata.service.search.indexes; 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.COLUMNS_NAME_KEYWORD; 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.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -79,16 +70,8 @@ public class DashboardDataModelIndex implements ColumnIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
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(COLUMNS_NAME_KEYWORD, 10.0f); fields.put(COLUMNS_NAME_KEYWORD, 10.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put("columns.name", 2.0f); fields.put("columns.name", 2.0f);
fields.put("columns.name.ngram", 1.0f); fields.put("columns.name.ngram", 1.0f);
fields.put("columns.displayName", 1.0f); fields.put("columns.displayName", 1.0f);

View File

@ -1,17 +1,8 @@
package org.openmetadata.service.search.indexes; package org.openmetadata.service.search.indexes;
import static org.openmetadata.common.utils.CommonUtil.listOrEmpty; import static org.openmetadata.common.utils.CommonUtil.listOrEmpty;
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_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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -69,15 +60,7 @@ public class DashboardIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
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(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put("charts.name", 2.0f); fields.put("charts.name", 2.0f);
fields.put("charts.description", 1.0f); fields.put("charts.description", 1.0f);
return fields; return fields;

View File

@ -1,16 +1,6 @@
package org.openmetadata.service.search.indexes; 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_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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -48,15 +38,6 @@ public class DataProductIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); return SearchIndex.getDefaultFields();
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(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
return fields;
} }
} }

View File

@ -1,14 +1,6 @@
package org.openmetadata.service.search.indexes; 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.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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -45,13 +37,6 @@ public class DomainIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); return SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 15.0f);
fields.put(FIELD_NAME, 15.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields;
} }
} }

View File

@ -1,16 +1,8 @@
package org.openmetadata.service.search.indexes; 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.FIELD_DISPLAY_NAME_NGRAM;
import static org.openmetadata.service.search.EntityBuilderConstant.FIELD_NAME_NGRAM;
import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME; import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME;
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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -49,21 +41,14 @@ public class GlossaryTermIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 10.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(FIELD_NAME, 10.0f);
fields.put(NAME_KEYWORD, 1.0f);
fields.put(FIELD_NAME_NGRAM, 1.0f);
fields.put(FULLY_QUALIFIED_NAME + ".keyword", 3.0f); fields.put(FULLY_QUALIFIED_NAME + ".keyword", 3.0f);
fields.put(FULLY_QUALIFIED_NAME + ".ngram", 1.0f); fields.put(FULLY_QUALIFIED_NAME + ".ngram", 1.0f);
fields.put("synonyms", 5.0f); fields.put("synonyms", 5.0f);
fields.put("synonyms.ngram", 1.0f); fields.put("synonyms.ngram", 1.0f);
fields.put(FIELD_DESCRIPTION, 3.0f);
fields.put("glossary.name", 5.0f); fields.put("glossary.name", 5.0f);
fields.put("glossary.displayName", 5.0f); fields.put("glossary.displayName", 5.0f);
fields.put("glossary.displayName.ngram", 1.0f); fields.put("glossary.displayName.ngram", 1.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields; return fields;
} }
} }

View File

@ -1,15 +1,6 @@
package org.openmetadata.service.search.indexes; 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_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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -55,16 +46,9 @@ public class MlModelIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 15.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(FIELD_NAME, 15.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put("mlFeatures.name", 2.0f); fields.put("mlFeatures.name", 2.0f);
fields.put("mlFeatures.description", 1.0f); fields.put("mlFeatures.description", 1.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields; return fields;
} }
} }

View File

@ -1,15 +1,6 @@
package org.openmetadata.service.search.indexes; 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_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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -66,16 +57,9 @@ public class PipelineIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 15.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(FIELD_NAME, 15.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put("tasks.name", 2.0f); fields.put("tasks.name", 2.0f);
fields.put("tasks.description", 1.0f); fields.put("tasks.description", 1.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields; return fields;
} }
} }

View File

@ -1,12 +1,9 @@
package org.openmetadata.service.search.indexes; 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.QUERY; import static org.openmetadata.service.Entity.QUERY;
import static org.openmetadata.service.search.EntityBuilderConstant.*; import static org.openmetadata.service.search.EntityBuilderConstant.QUERY_NGRAM;
import java.util.ArrayList; import java.util.ArrayList;
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;
@ -48,13 +45,9 @@ public class QueryIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 10.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(QUERY, 10.0f); fields.put(QUERY, 10.0f);
fields.put(QUERY_NGRAM, 1.0f); fields.put(QUERY_NGRAM, 1.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields; return fields;
} }
} }

View File

@ -1,16 +1,6 @@
package org.openmetadata.service.search.indexes; 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_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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -53,15 +43,7 @@ public class SearchEntityIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
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(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put("fields.name", 2.0f); fields.put("fields.name", 2.0f);
fields.put("fields.children.description", 1.0f); fields.put("fields.children.description", 1.0f);
fields.put("fields.children.name", 2.0f); fields.put("fields.children.name", 2.0f);

View File

@ -1,5 +1,15 @@
package org.openmetadata.service.search.indexes; 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_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.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -33,4 +43,17 @@ public interface SearchIndex {
CommonUtil.nullOrEmpty(cloneEntity.getDisplayName()) ? cloneEntity.getName() : cloneEntity.getDisplayName()); CommonUtil.nullOrEmpty(cloneEntity.getDisplayName()) ? cloneEntity.getName() : cloneEntity.getDisplayName());
return cloneEntity; return cloneEntity;
} }
static Map<String, Float> getDefaultFields() {
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(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields;
}
} }

View File

@ -1,14 +1,6 @@
package org.openmetadata.service.search.indexes; 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.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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -52,13 +44,6 @@ public class StoredProcedureIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); return SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 15.0f);
fields.put(FIELD_NAME, 15.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields;
} }
} }

View File

@ -1,17 +1,8 @@
package org.openmetadata.service.search.indexes; 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.COLUMNS_NAME_KEYWORD; 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.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -113,20 +104,11 @@ public class TableIndex implements ColumnIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
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(FULLY_QUALIFIED_NAME_PARTS, 1.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(COLUMNS_NAME_KEYWORD, 10.0f); fields.put(COLUMNS_NAME_KEYWORD, 10.0f);
fields.put("columns.name", 2.0f); fields.put("columns.name", 2.0f);
fields.put("columns.name.ngram", 1.0f); fields.put("columns.name.ngram", 1.0f);
fields.put("columns.displayName", 1.0f); fields.put("columns.displayName", 1.0f);
fields.put("columns.description", 1.0f);
fields.put("columns.children.name", 2.0f); fields.put("columns.children.name", 2.0f);
return fields; return fields;
} }

View File

@ -1,14 +1,6 @@
package org.openmetadata.service.search.indexes; 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.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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -47,14 +39,8 @@ public class TagIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_NAME, 10.0f);
fields.put(FIELD_DISPLAY_NAME, 10.0f);
fields.put(FIELD_NAME_NGRAM, 1.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put("classification.name", 1.0f); fields.put("classification.name", 1.0f);
fields.put(FIELD_DESCRIPTION, 3.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields; return fields;
} }
} }

View File

@ -1,11 +1,6 @@
package org.openmetadata.service.search.indexes; package org.openmetadata.service.search.indexes;
import static org.openmetadata.service.Entity.FIELD_DESCRIPTION;
import static org.openmetadata.service.Entity.FIELD_NAME;
import static org.openmetadata.service.search.EntityBuilderConstant.FULLY_QUALIFIED_NAME_PARTS;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
@ -81,10 +76,7 @@ public class TestCaseIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put(FIELD_NAME, 10.0f);
fields.put(FIELD_DESCRIPTION, 3.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put("testSuite.fullyQualifiedName", 10.0f); fields.put("testSuite.fullyQualifiedName", 10.0f);
fields.put("testSuite.name", 10.0f); fields.put("testSuite.name", 10.0f);
fields.put("testSuite.description", 3.0f); fields.put("testSuite.description", 3.0f);

View File

@ -1,17 +1,8 @@
package org.openmetadata.service.search.indexes; 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.ES_MESSAGE_SCHEMA_FIELD; import static org.openmetadata.service.search.EntityBuilderConstant.ES_MESSAGE_SCHEMA_FIELD;
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.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -117,15 +108,7 @@ public class TopicIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); Map<String, Float> fields = SearchIndex.getDefaultFields();
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(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
fields.put(ES_MESSAGE_SCHEMA_FIELD, 2.0f); fields.put(ES_MESSAGE_SCHEMA_FIELD, 2.0f);
fields.put("messageSchema.schemaFields.description", 1.0f); fields.put("messageSchema.schemaFields.description", 1.0f);
fields.put("messageSchema.schemaFields.children.name", 2.0f); fields.put("messageSchema.schemaFields.children.name", 2.0f);

View File

@ -1,14 +1,6 @@
package org.openmetadata.service.search.indexes; package org.openmetadata.service.search.indexes;
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_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.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -47,13 +39,6 @@ public class UserIndex implements SearchIndex {
} }
public static Map<String, Float> getFields() { public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>(); return SearchIndex.getDefaultFields();
fields.put(FIELD_DISPLAY_NAME, 3.0f);
fields.put(DISPLAY_NAME_KEYWORD, 5.0f);
fields.put(FIELD_DISPLAY_NAME_NGRAM, 1.0f);
fields.put(FIELD_NAME, 2.0f);
fields.put(NAME_KEYWORD, 3.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
return fields;
} }
} }

View File

@ -59,6 +59,7 @@ 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.SearchEntityIndex;
import org.openmetadata.service.search.indexes.SearchIndex;
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;
@ -336,7 +337,17 @@ public class OpenSearchClient implements SearchClient {
} }
/* For backward-compatibility we continue supporting the deleted argument, this should be removed in future versions */ /* 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("all")) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.should(
QueryBuilders.boolQuery()
.must(searchSourceBuilder.query())
.must(QueryBuilders.existsQuery("deleted"))
.must(QueryBuilders.termQuery("deleted", request.deleted())));
boolQueryBuilder.should(
QueryBuilders.boolQuery().must(searchSourceBuilder.query()).mustNot(QueryBuilders.existsQuery("deleted")));
searchSourceBuilder.query(boolQueryBuilder);
} else if (request.getIndex().equalsIgnoreCase("domain_search_index")
|| request.getIndex().equalsIgnoreCase("data_product_search_index") || request.getIndex().equalsIgnoreCase("data_product_search_index")
|| request.getIndex().equalsIgnoreCase("query_search_index") || request.getIndex().equalsIgnoreCase("query_search_index")
|| request.getIndex().equalsIgnoreCase("raw_cost_analysis_report_data_index") || request.getIndex().equalsIgnoreCase("raw_cost_analysis_report_data_index")
@ -878,7 +889,8 @@ public class OpenSearchClient implements SearchClient {
} }
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).fields(SearchIndex.getDefaultFields()).lenient(true);
SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size); SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size);
return addAggregation(searchSourceBuilder); return addAggregation(searchSourceBuilder);
} }

View File

@ -93,7 +93,7 @@
"indexName": "data_product_search_index", "indexName": "data_product_search_index",
"indexMappingFile": "/elasticsearch/%s/data_products_index_mapping.json", "indexMappingFile": "/elasticsearch/%s/data_products_index_mapping.json",
"alias": "dataProduct", "alias": "dataProduct",
"parentAliases": ["domain"] "parentAliases": ["domain","all"]
}, },
"domain": { "domain": {
"indexName": "domain_search_index", "indexName": "domain_search_index",

View File

@ -34,6 +34,7 @@ import {
import { showErrorToast } from '../../utils/ToastUtils'; import { showErrorToast } from '../../utils/ToastUtils';
import { import {
DashboardSource, DashboardSource,
DataProductSource,
GlossarySource, GlossarySource,
MlModelSource, MlModelSource,
Option, Option,
@ -92,6 +93,9 @@ const Suggestions = ({
const [dataModelSuggestions, setDataModelSuggestions] = useState< const [dataModelSuggestions, setDataModelSuggestions] = useState<
DashboardDataModelSearchSource[] DashboardDataModelSearchSource[]
>([]); >([]);
const [dataProductSuggestions, setDataProductSuggestions] = useState<
DataProductSource[]
>([]);
const isMounting = useRef(true); const isMounting = useRef(true);
@ -117,6 +121,9 @@ const Suggestions = ({
); );
setGlossarySuggestions(filterOptionsByIndex(options, SearchIndex.GLOSSARY)); setGlossarySuggestions(filterOptionsByIndex(options, SearchIndex.GLOSSARY));
setTagSuggestions(filterOptionsByIndex(options, SearchIndex.TAG)); setTagSuggestions(filterOptionsByIndex(options, SearchIndex.TAG));
setDataProductSuggestions(
filterOptionsByIndex(options, SearchIndex.DATA_PRODUCT)
);
}; };
const getSuggestionsForIndex = ( const getSuggestionsForIndex = (
@ -175,6 +182,10 @@ const Suggestions = ({
searchIndex: SearchIndex.GLOSSARY, searchIndex: SearchIndex.GLOSSARY,
}, },
{ suggestions: tagSuggestions, searchIndex: SearchIndex.TAG }, { suggestions: tagSuggestions, searchIndex: SearchIndex.TAG },
{
suggestions: dataProductSuggestions,
searchIndex: SearchIndex.DATA_PRODUCT,
},
].map(({ suggestions, searchIndex }) => ].map(({ suggestions, searchIndex }) =>
getSuggestionsForIndex(suggestions, searchIndex) getSuggestionsForIndex(suggestions, searchIndex)
)} )}

View File

@ -85,6 +85,10 @@ export interface DashboardDataModelSource extends CommonSource {
data_model_id: string; data_model_id: string;
data_model_name: string; data_model_name: string;
} }
export interface DataProductSource extends CommonSource {
data_product_id: string;
data_product_name: string;
}
export interface Option { export interface Option {
_index: string; _index: string;
@ -99,7 +103,8 @@ export interface Option {
DashboardDataModelSearchSource & DashboardDataModelSearchSource &
GlossarySource & GlossarySource &
TagSource & TagSource &
SearchIndexSource; SearchIndexSource &
DataProductSource;
} }
export type SearchSuggestions = export type SearchSuggestions =
@ -113,4 +118,5 @@ export type SearchSuggestions =
| MlModelSource[] | MlModelSource[]
| SearchIndexSource[] | SearchIndexSource[]
| StoredProcedureSearchSource[] | StoredProcedureSearchSource[]
| DashboardDataModelSearchSource[]; | DashboardDataModelSearchSource[]
| DataProductSource[];

View File

@ -136,6 +136,7 @@ export const globalSearchOptions = [
{ value: SearchIndex.GLOSSARY, label: t('label.glossary') }, { value: SearchIndex.GLOSSARY, label: t('label.glossary') },
{ value: SearchIndex.TAG, label: t('label.tag') }, { value: SearchIndex.TAG, label: t('label.tag') },
{ value: SearchIndex.SEARCH_INDEX, label: t('label.search-index') }, { value: SearchIndex.SEARCH_INDEX, label: t('label.search-index') },
{ value: SearchIndex.DATA_PRODUCT, label: t('label.data-product') },
]; ];
export const DESCRIPTIONLENGTH = 100; export const DESCRIPTIONLENGTH = 100;

View File

@ -145,4 +145,4 @@ export const COMMON_FILTERS_FOR_DIFFERENT_TABS = [
export const ALL_EXPLORE_SEARCH_INDEX = export const ALL_EXPLORE_SEARCH_INDEX =
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
`${SearchIndex.TABLE},${SearchIndex.TOPIC},${SearchIndex.DASHBOARD},${SearchIndex.PIPELINE},${SearchIndex.MLMODEL},${SearchIndex.STORED_PROCEDURE},${SearchIndex.DASHBOARD_DATA_MODEL},${SearchIndex.CONTAINER},${SearchIndex.GLOSSARY},${SearchIndex.TAG},${SearchIndex.SEARCH_INDEX}` as SearchIndex; `${SearchIndex.TABLE},${SearchIndex.TOPIC},${SearchIndex.DASHBOARD},${SearchIndex.PIPELINE},${SearchIndex.MLMODEL},${SearchIndex.STORED_PROCEDURE},${SearchIndex.DASHBOARD_DATA_MODEL},${SearchIndex.CONTAINER},${SearchIndex.GLOSSARY},${SearchIndex.TAG},${SearchIndex.SEARCH_INDEX},${SearchIndex.DATA_PRODUCT}` as SearchIndex;

View File

@ -326,7 +326,7 @@ const ExplorePageV1: FunctionComponent = () => {
setUpdatedAggregations(res.aggregations); setUpdatedAggregations(res.aggregations);
}), }),
searchQuery({ searchQuery({
query: escapeESReservedCharacters(searchQueryParam), query: `*${escapeESReservedCharacters(searchQueryParam)}*`,
pageNumber: 0, pageNumber: 0,
pageSize: 0, pageSize: 0,
queryFilter: combinedQueryFilter, queryFilter: combinedQueryFilter,

View File

@ -18,6 +18,7 @@ import { isEmpty } from 'lodash';
import React from 'react'; import React from 'react';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { ReactComponent as IconDashboard } from '../assets/svg/dashboard-grey.svg'; import { ReactComponent as IconDashboard } from '../assets/svg/dashboard-grey.svg';
import { ReactComponent as DataProductIcon } from '../assets/svg/ic-data-product.svg';
import { ReactComponent as IconContainer } from '../assets/svg/ic-storage.svg'; import { ReactComponent as IconContainer } from '../assets/svg/ic-storage.svg';
import { ReactComponent as IconStoredProcedure } from '../assets/svg/ic-stored-procedure.svg'; import { ReactComponent as IconStoredProcedure } from '../assets/svg/ic-stored-procedure.svg';
import { ReactComponent as IconMlModal } from '../assets/svg/mlmodal.svg'; import { ReactComponent as IconMlModal } from '../assets/svg/mlmodal.svg';
@ -150,6 +151,12 @@ export const getGroupLabel = (index: string) => {
break; break;
case SearchIndex.DATA_PRODUCT:
label = i18next.t('label.data-product-plural');
GroupIcon = DataProductIcon;
break;
case SearchIndex.TABLE: case SearchIndex.TABLE:
default: default:
label = i18next.t('label.table-plural'); label = i18next.t('label.table-plural');