diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/search/SearchResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/search/SearchResource.java
index e5fc0bdd900..4085b7914ef 100644
--- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/search/SearchResource.java
+++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/search/SearchResource.java
@@ -102,6 +102,7 @@ public class SearchResource {
private static final Integer MAX_RESULT_HITS = 10000;
private static final String NAME_KEYWORD = "name.keyword";
private static final String DISPLAY_NAME = "displayName";
+ private static final String FIELD_NAME_NGRAM = "name.ngram";
private static final String DISPLAY_NAME_KEYWORD = "displayName.keyword";
private static final String FIELD_DISPLAY_NAME_NGRAM = "displayName.ngram";
private static final String QUERY = "query";
@@ -551,6 +552,7 @@ public class SearchResource {
.field(FIELD_DISPLAY_NAME, 15.0f)
.field(FIELD_DISPLAY_NAME_NGRAM)
.field(FIELD_NAME, 15.0f)
+ .field(FIELD_NAME_NGRAM)
.field(DISPLAY_NAME_KEYWORD, 25.0f)
.field(NAME_KEYWORD, 25.0f)
.field(FIELD_DESCRIPTION, 1.0f)
@@ -605,6 +607,7 @@ public class SearchResource {
.field(FIELD_DISPLAY_NAME, 15.0f)
.field(FIELD_DISPLAY_NAME_NGRAM)
.field(FIELD_NAME, 15.0f)
+ .field(FIELD_NAME_NGRAM)
.field(DISPLAY_NAME_KEYWORD, 25.0f)
.field(NAME_KEYWORD, 25.0f)
.field(FIELD_DESCRIPTION, 1.0f)
@@ -634,6 +637,7 @@ public class SearchResource {
.field(FIELD_DISPLAY_NAME, 15.0f)
.field(FIELD_DISPLAY_NAME_NGRAM)
.field(FIELD_NAME, 15.0f)
+ .field(FIELD_NAME_NGRAM)
.field(DISPLAY_NAME_KEYWORD, 25.0f)
.field(NAME_KEYWORD, 25.0f)
.field(FIELD_DESCRIPTION, 1.0f)
@@ -839,6 +843,8 @@ public class SearchResource {
private SearchSourceBuilder buildGlossaryTermSearchBuilder(String query, int from, int size) {
QueryStringQueryBuilder queryBuilder =
QueryBuilders.queryStringQuery(query)
+ .field(FIELD_DISPLAY_NAME, 10.0f)
+ .field(FIELD_DISPLAY_NAME_NGRAM, 1.0f)
.field(FIELD_NAME, 10.0f)
.field(NAME_KEYWORD, 10.0f)
.field(DISPLAY_NAME_KEYWORD, 10.0f)
@@ -855,6 +861,8 @@ public class SearchResource {
HighlightBuilder.Field highlightGlossaryName = new HighlightBuilder.Field(FIELD_NAME);
highlightGlossaryName.highlighterType(UNIFIED);
+ HighlightBuilder.Field highlightGlossaryDisplayName = new HighlightBuilder.Field(FIELD_DISPLAY_NAME);
+ highlightGlossaryDisplayName.highlighterType(UNIFIED);
HighlightBuilder.Field highlightDescription = new HighlightBuilder.Field(FIELD_DESCRIPTION);
highlightDescription.highlighterType(UNIFIED);
HighlightBuilder.Field highlightSynonym = new HighlightBuilder.Field("synonyms");
@@ -862,7 +870,9 @@ public class SearchResource {
HighlightBuilder hb = new HighlightBuilder();
hb.field(highlightDescription);
hb.field(highlightGlossaryName);
+ hb.field(highlightGlossaryDisplayName);
hb.field(highlightSynonym);
+
hb.preTags("");
hb.postTags("");
SearchSourceBuilder searchSourceBuilder =
@@ -877,15 +887,20 @@ public class SearchResource {
QueryStringQueryBuilder queryBuilder =
QueryBuilders.queryStringQuery(query)
.field(FIELD_NAME, 10.0f)
+ .field(FIELD_DISPLAY_NAME, 10.0f)
+ .field(FIELD_DISPLAY_NAME_NGRAM, 1.0f)
.field(DESCRIPTION, 3.0f)
.defaultOperator(Operator.AND)
.fuzziness(Fuzziness.AUTO);
HighlightBuilder.Field highlightTagName = new HighlightBuilder.Field(FIELD_NAME);
highlightTagName.highlighterType(UNIFIED);
+ HighlightBuilder.Field highlightTagDisplayName = new HighlightBuilder.Field(FIELD_DISPLAY_NAME);
+ highlightTagDisplayName.highlighterType(UNIFIED);
HighlightBuilder.Field highlightDescription = new HighlightBuilder.Field(FIELD_DESCRIPTION);
highlightDescription.highlighterType(UNIFIED);
HighlightBuilder hb = new HighlightBuilder();
+ hb.field(highlightTagDisplayName);
hb.field(highlightDescription);
hb.field(highlightTagName);
hb.preTags("");
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json
index 4fb22447741..03f7f07ef24 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/dashboard_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -39,10 +42,15 @@
},
"name": {
"type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
@@ -57,6 +65,10 @@
"ngram": {
"type": "text",
"analyzer": "om_ngram"
+ },
+ "keyword": {
+ "type": "keyword",
+ "ignore_above": 256
}
}
},
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/glossary_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/glossary_index_mapping.json
index 955c6b12f1d..a86882f0f48 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/glossary_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/glossary_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -38,11 +41,16 @@
"type": "text"
},
"name": {
- "type": "keyword",
+ "type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json
index f907f53d6d5..a4312d6374f 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/mlmodel_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -39,10 +42,15 @@
},
"name": {
"type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
@@ -54,6 +62,10 @@
"type": "text",
"analyzer": "om_analyzer",
"fields": {
+ "keyword": {
+ "type": "keyword",
+ "ignore_above": 256
+ },
"ngram": {
"type": "text",
"analyzer": "om_ngram"
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json
index f0bceadce20..47dc26a00c8 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/pipeline_index_mapping.json
@@ -17,6 +17,14 @@
"lowercase",
"om_stemmer"
]
+ },
+ "om_ngram": {
+ "tokenizer": "ngram",
+ "min_gram": 1,
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -47,7 +55,17 @@
},
"displayName": {
"type": "text",
- "analyzer": "om_analyzer"
+ "analyzer": "om_analyzer",
+ "fields": {
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
+ },
+ "keyword": {
+ "type": "keyword",
+ "ignore_above": 256
+ }
+ }
},
"description": {
"type": "text",
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json
index f3f5e6e1b97..4db35d3c177 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/table_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -39,10 +42,15 @@
},
"name": {
"type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
@@ -54,6 +62,10 @@
"type": "text",
"analyzer": "om_analyzer",
"fields": {
+ "keyword": {
+ "type": "keyword",
+ "ignore_above": 256
+ },
"ngram": {
"type": "text",
"analyzer": "om_ngram"
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/tag_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/tag_index_mapping.json
index 2c22f4bff87..b5668efeed8 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/tag_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/tag_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -38,11 +41,16 @@
"type": "text"
},
"name": {
- "type": "keyword",
+ "type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
@@ -52,10 +60,15 @@
},
"displayName": {
"type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/team_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/team_index_mapping.json
index ea3f88eb832..8c1c877a19b 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/team_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/team_index_mapping.json
@@ -1,6 +1,6 @@
{
"settings": {
- "analysis": {
+ "analysis": {
"normalizer": {
"lowercase_normalizer": {
"type": "custom",
@@ -39,10 +39,15 @@
},
"name": {
"type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json
index 8ef64685384..cbdc7b82adb 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/topic_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {
@@ -39,10 +42,15 @@
},
"name": {
"type": "text",
+ "analyzer": "om_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
+ },
+ "ngram": {
+ "type": "text",
+ "analyzer": "om_ngram"
}
}
},
diff --git a/openmetadata-service/src/main/resources/elasticsearch/en/user_index_mapping.json b/openmetadata-service/src/main/resources/elasticsearch/en/user_index_mapping.json
index e6187f986be..c32cc553d88 100644
--- a/openmetadata-service/src/main/resources/elasticsearch/en/user_index_mapping.json
+++ b/openmetadata-service/src/main/resources/elasticsearch/en/user_index_mapping.json
@@ -21,7 +21,10 @@
"om_ngram": {
"tokenizer": "ngram",
"min_gram": 1,
- "max_gram": 2
+ "max_gram": 2,
+ "filter": [
+ "lowercase"
+ ]
}
},
"filter": {