code: def searchForThreads(self, name, limit=10):
          
          params = {"search": name, "limit": limit}
          j = self.graphql_request(GraphQL(query=GraphQL.SEARCH_THREAD, params=params))
  
          rtn = []
          for node in j[name]["threads"]["nodes"]:
              if node["__typename"] == "User":
                  rtn.append(User._from_graphql(node))
              elif node["__typename"] == "MessageThread":
                  # MessageThread => Group thread
                  rtn.append(Group._from_graphql(node))
              elif node["__typename"] == "Page":
                  rtn.append(Page._from_graphql(node))
              elif node["__typename"] == "Group":
                  # We don't handle Facebook "Groups"
                  pass
              else:
                  log.warning(
                      "Unknown type {} in {}".format(repr(node["__typename"]), node)
                  )
  
          return rtn
docs: Find and get a thread by its name
  
          :param name: Name of the thread
          :param limit: The max. amount of groups to fetch
          :return: :class:`models.User`, :class:`models.Group` and :class:`models.Page` objects, ordered by relevance
          :rtype: list
          :raises: FBchatException if request failed