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 { public class TeamIndex implements ElasticSearchIndex {
final Team team; 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) { public TeamIndex(Team team) {
this.team = team; this.team = team;
} }
public Map<String, Object> buildESDoc() { public Map<String, Object> buildESDoc() {
if (team.getDisplayName() == null) {
team.setDisplayName(team.getName());
}
Map<String, Object> doc = JsonUtils.getMap(team); Map<String, Object> doc = JsonUtils.getMap(team);
ElasticSearchIndexUtils.removeNonIndexableFields(doc, excludeFields); ElasticSearchIndexUtils.removeNonIndexableFields(doc, excludeFields);
List<ElasticSearchSuggest> suggest = new ArrayList<>(); List<ElasticSearchSuggest> suggest = new ArrayList<>();
suggest.add(ElasticSearchSuggest.builder().input(team.getName()).weight(5).build()); suggest.add(ElasticSearchSuggest.builder().input(team.getName()).weight(5).build());
suggest.add(ElasticSearchSuggest.builder().input(team.getDisplayName()).weight(10).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("suggest", suggest);
doc.put("entityType", Entity.TEAM); doc.put("entityType", Entity.TEAM);
return doc; return doc;

View File

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

View File

@ -570,13 +570,13 @@ public class SearchResource {
private SearchSourceBuilder buildUserSearchBuilder(String query, int from, int size) { private SearchSourceBuilder buildUserSearchBuilder(String query, int from, int size) {
QueryStringQueryBuilder queryBuilder = 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); return searchBuilder(queryBuilder, null, from, size);
} }
private SearchSourceBuilder buildTeamSearchBuilder(String query, int from, int size) { private SearchSourceBuilder buildTeamSearchBuilder(String query, int from, int size) {
QueryStringQueryBuilder queryBuilder = 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); return searchBuilder(queryBuilder, null, from, size);
} }

View File

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

View File

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