From 6b52a62adb6f70a54119e5247df5ee4b0a4804da Mon Sep 17 00:00:00 2001 From: Ali HAMDI Date: Mon, 24 Jul 2023 15:25:02 +0100 Subject: [PATCH] fix: error when searching notes - EXO-65101 - Meeds-io/meeds#1038 (#703) Priori to this fix a NullPointerException was thrown when there are search results for Notes. The error is thrown because we used to index and search Notes attachments, which is no more the case thanks to the curent fix. It also enhances search results by appending the :star: character to searched words --- .../search/WikiElasticSearchServiceConnector.java | 14 +------------- .../src/main/resources/notes-search-query.json | 10 +--------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/notes-service/src/main/java/org/exoplatform/wiki/jpa/search/WikiElasticSearchServiceConnector.java b/notes-service/src/main/java/org/exoplatform/wiki/jpa/search/WikiElasticSearchServiceConnector.java index 38d05d3483..85802a68a5 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/jpa/search/WikiElasticSearchServiceConnector.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/jpa/search/WikiElasticSearchServiceConnector.java @@ -131,13 +131,7 @@ private String buildQueryStatement(Set calendarOwnersOfUser, long limit) { term = removeSpecialCharacters(term); term = StringUtils.isBlank(term) ? "*:*" : term; - List termsQuery = Arrays.stream(term.split(" ")).filter(StringUtils::isNotBlank).map(word -> { - word = word.trim(); - if (word.length() > 5) { - word = word + "~1"; - } - return word; - }).collect(Collectors.toList()); + List termsQuery = Arrays.stream(term.split(" ")).filter(StringUtils::isNotBlank).map(word -> "*" + word + "*").collect(Collectors.toList()); Map> metadataFilters = buildMetadataFilter(isFavorites, userId); String metadataQuery = buildMetadataQueryStatement(metadataFilters); String termQuery = StringUtils.join(termsQuery, " AND "); @@ -203,12 +197,6 @@ protected List buildWikiResult(String jsonResponse) { String pageName = (String) hitSource.get("name"); String attachmentName = null; - // Result can be an attachment - if (((JSONObject) jsonHit).get("_type").equals("wiki-attachment")) { - pageName = (String) hitSource.get("pageName"); - attachmentName = (String) hitSource.get("name"); - } - // Get the excerpt JSONObject hitHighlight = (JSONObject) ((JSONObject) jsonHit).get("highlight"); StringBuilder excerpt = new StringBuilder(); diff --git a/notes-service/src/main/resources/notes-search-query.json b/notes-service/src/main/resources/notes-search-query.json index b030e23e69..be07ac491a 100644 --- a/notes-service/src/main/resources/notes-search-query.json +++ b/notes-service/src/main/resources/notes-search-query.json @@ -11,14 +11,6 @@ } } ], - "should": { - "match_phrase": { - "attachment.content": { - "query": "@term@", - "boost": 5 - } - } - }, "must":{ "query_string":{ "fields": ["name","title^5","content","comment","attachment.content"], @@ -50,4 +42,4 @@ } } } -} \ No newline at end of file +}