mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-19 15:31:59 +00:00
* 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:
parent
4d474ab063
commit
4a5676d617
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
"type": "text"
|
"type": "text"
|
||||||
},
|
},
|
||||||
"displayName": {
|
"displayName": {
|
||||||
"type": "keyword",
|
"type": "text",
|
||||||
"fields": {
|
"fields": {
|
||||||
"keyword": {
|
"keyword": {
|
||||||
"type": "keyword",
|
"type": "keyword",
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
"type": "text"
|
"type": "text"
|
||||||
},
|
},
|
||||||
"displayName": {
|
"displayName": {
|
||||||
"type": "keyword",
|
"type": "text",
|
||||||
"fields": {
|
"fields": {
|
||||||
"keyword": {
|
"keyword": {
|
||||||
"type": "keyword",
|
"type": "keyword",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user