code: function (fields) {
          return function(query, suggestions) {
              var tokens = text_util.splitTokens(text_util.split(query));
              var suggestionWords = [];
  
              if (suggestions.length === 1) {
                  if (fields) {
                      collection_util.each(fields, function (stopwords, field) {
                          var fieldValue = object_util.getDeepValue(suggestions[0], field);
                          var fieldWords = fieldValue 
                              && text_util.splitTokens(text_util.split(fieldValue, stopwords));
  
                          if (fieldWords && fieldWords.length) {
                              suggestionWords = suggestionWords.concat(fieldWords);
                          }
                      });
                  }
  
                  if (collection_util.minusWithPartialMatching(tokens, suggestionWords).length === 0) {
                      return 0;
                  }
              }
  
              return -1;
          }
      }
docs: Matches query against values contained in suggestion fields
  for cases, when there is only one suggestion
  only considers fields specified in fields map
  uses partial matching:
  "0445" vs { value: "ALFA-BANK", data: { "bic": "044525593" }} is a match