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.QueryIndex;
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.TableIndex;
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 */
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("query_search_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) {
QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(query).lenient(true);
QueryStringQueryBuilder queryBuilder =
QueryBuilders.queryStringQuery(query).fields(SearchIndex.getDefaultFields()).lenient(true);
SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size);
return addAggregation(searchSourceBuilder);
}

View File

@ -1,16 +1,8 @@
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.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.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@ -84,14 +76,7 @@ public class ContainerIndex implements ColumnIndex {
}
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_DESCRIPTION, 1.0f);
fields.put(DISPLAY_NAME_KEYWORD, 25.0f);
fields.put(NAME_KEYWORD, 25.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put("dataModel.columns.name", 2.0f);
fields.put(DATA_MODEL_COLUMNS_NAME_KEYWORD, 10.0f);
fields.put("dataModel.columns.name.ngram", 1.0f);

View File

@ -1,17 +1,8 @@
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.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.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@ -79,16 +70,8 @@ public class DashboardDataModelIndex implements ColumnIndex {
}
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);
Map<String, Float> fields = SearchIndex.getDefaultFields();
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.ngram", 1.0f);
fields.put("columns.displayName", 1.0f);

View File

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

View File

@ -1,16 +1,6 @@
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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -48,15 +38,6 @@ public class DataProductIndex implements SearchIndex {
}
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(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
fields.put(FIELD_DESCRIPTION, 1.0f);
return fields;
return SearchIndex.getDefaultFields();
}
}

View File

@ -1,14 +1,6 @@
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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -45,13 +37,6 @@ public class DomainIndex implements SearchIndex {
}
public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>();
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;
return SearchIndex.getDefaultFields();
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,15 @@
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.List;
import java.util.Map;
@ -33,4 +43,17 @@ public interface SearchIndex {
CommonUtil.nullOrEmpty(cloneEntity.getDisplayName()) ? cloneEntity.getName() : cloneEntity.getDisplayName());
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;
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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -52,13 +44,6 @@ public class StoredProcedureIndex implements SearchIndex {
}
public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>();
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;
return SearchIndex.getDefaultFields();
}
}

View File

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

View File

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

View File

@ -1,11 +1,6 @@
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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@ -81,10 +76,7 @@ public class TestCaseIndex implements SearchIndex {
}
public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>();
fields.put(FIELD_NAME, 10.0f);
fields.put(FIELD_DESCRIPTION, 3.0f);
fields.put(FULLY_QUALIFIED_NAME_PARTS, 10.0f);
Map<String, Float> fields = SearchIndex.getDefaultFields();
fields.put("testSuite.fullyQualifiedName", 10.0f);
fields.put("testSuite.name", 10.0f);
fields.put("testSuite.description", 3.0f);

View File

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

View File

@ -1,14 +1,6 @@
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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -47,13 +39,6 @@ public class UserIndex implements SearchIndex {
}
public static Map<String, Float> getFields() {
Map<String, Float> fields = new HashMap<>();
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;
return SearchIndex.getDefaultFields();
}
}

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.QueryIndex;
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.TableIndex;
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 */
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("query_search_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) {
QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(query).lenient(true);
QueryStringQueryBuilder queryBuilder =
QueryBuilders.queryStringQuery(query).fields(SearchIndex.getDefaultFields()).lenient(true);
SearchSourceBuilder searchSourceBuilder = searchBuilder(queryBuilder, null, from, size);
return addAggregation(searchSourceBuilder);
}

View File

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

View File

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

View File

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

View File

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

View File

@ -145,4 +145,4 @@ export const COMMON_FILTERS_FOR_DIFFERENT_TABS = [
export const ALL_EXPLORE_SEARCH_INDEX =
// 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);
}),
searchQuery({
query: escapeESReservedCharacters(searchQueryParam),
query: `*${escapeESReservedCharacters(searchQueryParam)}*`,
pageNumber: 0,
pageSize: 0,
queryFilter: combinedQueryFilter,

View File

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