Pārlūkot izejas kodu

HUE-5135 [metadata] Do not send * query when typing a second term

Romain Rigaux 9 gadi atpakaļ
vecāks
revīzija
255568a

+ 11 - 9
desktop/core/src/desktop/templates/assist.mako

@@ -1624,7 +1624,7 @@ from metadata.conf import has_navigator
           self.apiHelper.navSearchAutocomplete({
             source: self.visiblePanel().type === 'sql' ?
                 (self.visiblePanel().panelData.selectedSource() ? self.visiblePanel().panelData.selectedSource().sourceType : 'hive') : self.visiblePanel().type,
-            query:  request.term + '*',
+            query:  request.term,
             successCallback: function (data) {
               var values = [];
               var facetPartialRe = new RegExp(partial, 'i');
@@ -1655,15 +1655,17 @@ from metadata.conf import has_navigator
                     }
                   });
                 }
-                if (values.length > 0) {
-                  values.push({ divider: true });
-                }
-                if (typeof data.results !== 'undefined') {
-                  data.results.forEach(function (result) {
-                    values.push({ data: { label: result.originalName, icon: NAV_TYPE_ICONS[result.type],  description: result.parentPath }, value: beforePartial + result.originalName });
-                  });
-                }
               }
+
+              if (values.length > 0) {
+                values.push({ divider: true });
+              }
+              if (typeof data.results !== 'undefined') {
+                data.results.forEach(function (result) {
+                  values.push({ data: { label: result.originalName, icon: NAV_TYPE_ICONS[result.type],  description: result.parentPath }, value: beforePartial + result.originalName });
+                });
+              }
+
               if (values.length > 0 && values[values.length - 1].divider) {
                 values.pop();
               }

+ 3 - 2
desktop/libs/metadata/src/metadata/navigator_api.py

@@ -188,8 +188,9 @@ def search_entities_interactive(request):
     }
 
   field_facets = ["tags", "type"] + f.keys()
+  query_s = query_s.strip() + '*'
 
-  last_query_term = [term for term in query_s.strip().split()][-1]
+  last_query_term = [term for term in query_s.split()][-1]
 
   if last_query_term and last_query_term != '*':
     last_query_term = last_query_term.rstrip('*')
@@ -212,7 +213,7 @@ def search_entities_interactive(request):
     for fname, fvalues in response['facets'].items():
       fvalues = sorted([(k, v) for k, v in fvalues.items() if v > 0], key=lambda n: n[1], reverse=True)
       response['facets'][fname] = OrderedDict(fvalues)
-      if ':' in last_query_term and not response['facets'][fname]:
+      if ':' in query_s and not response['facets'][fname]:
         del response['facets'][fname]
 
   response['status'] = 0