code: def search_people_by_bio(query, limit_results=DEFAULT_LIMIT,
                           index=['onename_people_index']):
      
  
      from pyes import QueryStringQuery, ES
      conn = ES()
  
      q = QueryStringQuery(query,
                           search_fields=['username', 'profile_bio'],
                           default_operator='and')
  
      results = conn.search(query=q, size=20, indices=index)
      count = conn.count(query=q)
      count = count.count
  
      # having 'or' gives more results but results quality goes down
      if(count == 0):
  
          q = QueryStringQuery(query,
                               search_fields=['username', 'profile_bio'],
                               default_operator='or')
  
          results = conn.search(query=q, size=20, indices=index)
  
      results_list = []
      counter = 0
  
      for profile in results:
  
          username = profile['username']
          results_list.append(username)
  
          counter += 1
  
          if(counter == limit_results):
              break
  
      return results_list
docs: queries lucene index to find a nearest match, output is profile username