Fix #9801: ES: Search api is not returning expected result (#9948)

* Fix #9801: ES: Search api is not returning expected result

* Fix #9801: ES: Search api is not returning expected result

* Fix #9801: ES: Search api is not returning expected result
This commit is contained in:
Sriharsha Chintalapani 2023-01-27 01:34:00 -08:00 committed by GitHub
parent 4d474ab063
commit 4a5676d617
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 12 deletions

View File

@ -9,21 +9,21 @@ import org.openmetadata.service.util.JsonUtils;
public class TeamIndex implements ElasticSearchIndex {
final Team team;
final List<String> excludeFields = List.of("owns", "changeDescription", "roles", "inheritedRoles");
final List<String> excludeFields = List.of("owns", "changeDescription");
public TeamIndex(Team team) {
this.team = team;
}
public Map<String, Object> buildESDoc() {
if (team.getDisplayName() == null) {
team.setDisplayName(team.getName());
}
Map<String, Object> doc = JsonUtils.getMap(team);
ElasticSearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<ElasticSearchSuggest> suggest = new ArrayList<>();
suggest.add(ElasticSearchSuggest.builder().input(team.getName()).weight(5).build());
suggest.add(ElasticSearchSuggest.builder().input(team.getDisplayName()).weight(10).build());
if (team.getDisplayName() == null) {
doc.put("displayName", team.getName());
}
doc.put("suggest", suggest);
doc.put("entityType", Entity.TEAM);
return doc;

View File

@ -9,21 +9,21 @@ import org.openmetadata.service.util.JsonUtils;
public class UserIndex implements ElasticSearchIndex {
final User user;
final List<String> excludeFields = List.of("owns", "changeDescription", "follows");
final List<String> excludeFields = List.of("owns", "changeDescription", "follows", "authenticationMechanism");
public UserIndex(User user) {
this.user = user;
}
public Map<String, Object> buildESDoc() {
if (user.getDisplayName() == null) {
user.setDisplayName(user.getName());
}
Map<String, Object> doc = JsonUtils.getMap(user);
ElasticSearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<ElasticSearchSuggest> suggest = new ArrayList<>();
suggest.add(ElasticSearchSuggest.builder().input(user.getName()).weight(5).build());
suggest.add(ElasticSearchSuggest.builder().input(user.getDisplayName()).weight(10).build());
if (user.getDisplayName() == null) {
doc.put("displayName", user.getName());
}
doc.put("suggest", suggest);
doc.put("entityType", Entity.USER);
return doc;

View File

@ -570,13 +570,13 @@ public class SearchResource {
private SearchSourceBuilder buildUserSearchBuilder(String query, int from, int size) {
QueryStringQueryBuilder queryBuilder =
QueryBuilders.queryStringQuery(query).field(NAME, 5.0f).field(DISPLAY_NAME, 1.0f).lenient(true);
QueryBuilders.queryStringQuery(query).field(DISPLAY_NAME, 5.0f).field(NAME, 3.0f).lenient(true);
return searchBuilder(queryBuilder, null, from, size);
}
private SearchSourceBuilder buildTeamSearchBuilder(String query, int from, int size) {
QueryStringQueryBuilder queryBuilder =
QueryBuilders.queryStringQuery(query).field(NAME, 5.0f).field(DISPLAY_NAME, 3.0f).lenient(true);
QueryBuilders.queryStringQuery(query).field(DISPLAY_NAME, 5.0f).field(NAME, 3.0f).lenient(true);
return searchBuilder(queryBuilder, null, from, size);
}

View File

@ -17,7 +17,7 @@
"type": "text"
},
"displayName": {
"type": "keyword",
"type": "text",
"fields": {
"keyword": {
"type": "keyword",

View File

@ -17,7 +17,7 @@
"type": "text"
},
"displayName": {
"type": "keyword",
"type": "text",
"fields": {
"keyword": {
"type": "keyword",