diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java index d6fe629..43747c9 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java @@ -88,7 +88,7 @@ public class SearchService { QueryBuilder textPhraseQuery = QueryBuilders.matchPhraseQuery("sections.text", must.toLowerCase(Locale.ROOT)) .queryName(must); QueryBuilder filenamePhraseQuery = QueryBuilders.matchPhraseQuery("filename", must.toLowerCase(Locale.ROOT)) - .queryName(must); + .queryName("filename." + must); QueryBuilder filenameOrTextMustQuery = QueryBuilders.boolQuery() .should(textPhraseQuery) .should(filenamePhraseQuery); @@ -99,7 +99,7 @@ public class SearchService { QueryBuilder textTermQuery = QueryBuilders.termQuery("sections.text", should.toLowerCase(Locale.ROOT)) .queryName(should); QueryBuilder filenameTermQuery = QueryBuilders.termQuery("filename", should.toLowerCase(Locale.ROOT)) - .queryName(should); + .queryName("filename." + should); entireQuery.should(textTermQuery); entireQuery.should(filenameTermQuery); sectionsQueries.should(textTermQuery); @@ -139,7 +139,7 @@ public class SearchService { private MatchedDocument convertSearchHit(SearchHit hit, Query query) { - Set matchesTerms = Arrays.stream(hit.getMatchedQueries()).collect(Collectors.toSet()); + Set matchesTerms = Arrays.stream(hit.getMatchedQueries()).map(match -> match.contains("filename.") ? match.replace("filename.", "") : match).collect(Collectors.toSet()); Set unmatchedTerms = Stream.concat(query.getMusts().stream(), query.getShoulds().stream()) .filter(term -> !matchesTerms.contains(term)) .collect(Collectors.toSet());