code: def _do_spelling_suggestion(database, query, spelling_query):
          
          if spelling_query:
              if ' ' in spelling_query:
                  return ' '.join([database.get_spelling_suggestion(term).decode('utf-8') for term in spelling_query.split()])
              else:
                  return database.get_spelling_suggestion(spelling_query).decode('utf-8')
  
          term_set = set()
          for term in query:
              for match in re.findall('[^A-Z]+', term.decode('utf-8')):  # Ignore field identifiers
                  term_set.add(database.get_spelling_suggestion(match).decode('utf-8'))
  
          return ' '.join(term_set)
docs: Private method that returns a single spelling suggestion based on
          `spelling_query` or `query`.
  
          Required arguments:
              `database` -- The database to check spelling against
              `query` -- The query to check
              `spelling_query` -- If not None, this will be checked instead of `query`
  
          Returns a string with a suggested spelling