From 61a7028f3fae33e0417efe1de49c01b8c5ef1923 Mon Sep 17 00:00:00 2001
From: AMIT KUMAR <amit.kumar@tarento.com>
Date: Thu, 9 Jun 2022 10:56:46 +0530
Subject: [PATCH] Issue #SB-29813 feat:fixed fuzzy issue (#1082)

* Issue #SB-29813 feat:fixed fuzzy issue

* Issue #SB-29813 feat:fixed fuzzy issue
---
 .../java/org/sunbird/common/ElasticSearchHelper.java   |  8 +++-----
 .../org/sunbird/common/ElasticSearchRestHighImpl.java  | 10 ++++------
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchHelper.java b/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchHelper.java
index 7bf576b9c..312db6be6 100644
--- a/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchHelper.java
+++ b/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchHelper.java
@@ -22,7 +22,6 @@ import org.elasticsearch.client.transport.TransportClient;
 import org.elasticsearch.common.unit.Fuzziness;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.index.query.ExistsQueryBuilder;
-import org.elasticsearch.index.query.MatchQueryBuilder;
 import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.index.query.RangeQueryBuilder;
@@ -449,10 +448,9 @@ public class ElasticSearchHelper {
    * @param value of the attribute
    * @return MatchQueryBuilder
    */
-  public static MatchQueryBuilder createFuzzyMatchQuery(String name, Object value) {
-    return QueryBuilders.matchQuery(name, value)
-        .fuzziness(Fuzziness.AUTO)
-        .fuzzyTranspositions(true);
+  public static void createFuzzyMatchQuery(BoolQueryBuilder query, String name, Object value) {
+    query.must(
+        QueryBuilders.matchQuery(name, value).fuzziness(Fuzziness.AUTO).fuzzyTranspositions(true));
   }
 
   /**
diff --git a/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchRestHighImpl.java b/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchRestHighImpl.java
index 63d37a678..751f134c2 100644
--- a/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchRestHighImpl.java
+++ b/core/es-utils/src/main/java/org/sunbird/common/ElasticSearchRestHighImpl.java
@@ -427,16 +427,14 @@ public class ElasticSearchRestHighImpl implements ElasticSearchService {
       }
     }
 
-    // set final query to search request builder
-    searchSourceBuilder.query(query);
-
     // do fuzzy search
     if (MapUtils.isNotEmpty(searchDTO.getFuzzy())) {
       Map.Entry<String, String> entry = searchDTO.getFuzzy().entrySet().iterator().next();
-      MatchQueryBuilder queryBuilder =
-          ElasticSearchHelper.createFuzzyMatchQuery(entry.getKey(), entry.getValue());
-      searchSourceBuilder.query(queryBuilder);
+      ElasticSearchHelper.createFuzzyMatchQuery(query, entry.getKey(), entry.getValue());
     }
+    // set final query to search request builder
+    searchSourceBuilder.query(query);
+
     List finalFacetList = new ArrayList();
 
     if (null != searchDTO.getFacets() && !searchDTO.getFacets().isEmpty()) {
-- 
GitLab