def METHOD_NAME(self, query_hash: str) -> t.List[IndexMatch[IndexT]]:
    """Searches this VPDQ index for query hashes within the index that are no more than the threshold away
    from the query hashes by hamming distance.
    Args:
        query_hash : Query VPDQ hash
    Returns:
        List of VPDQIndexMatch
    """
    features = prepare_vpdq_feature(query_hash, self.quality_threshold)
    if not features:
        return []
    results = self.index.search_with_distance_in_result(
        features, VPDQ_DISTANCE_THRESHOLD
    )
    query_matched: t.Dict[int, t.Set[str]] = {}
    index_matched: t.Dict[int, t.Set[int]] = {}
    matches: t.List[IndexMatch[IndexT]] = []
    for hash in results:
        for match in results[hash]:
            # query_str =>  (matched_idx, distance)
            vpdq_match, entry_list = self._index_idx_to_vpdqHex_and_entry[match[0]]
            for entry_id in entry_list:
                if entry_id not in query_matched:
                    query_matched[entry_id] = set()
                query_matched[entry_id].add(hash)
                if entry_id not in index_matched:
                    index_matched[entry_id] = set()
                index_matched[entry_id].add(vpdq_match)
    for entry_id in query_matched.keys():
        query_matched_percent = len(query_matched[entry_id]) * 100 / len(features)
        index_matched_percent = (
            len(index_matched[entry_id])
            * 100
            / len(self._entry_idx_to_features_and_entries[entry_id][0])
        )
        if (
            query_matched_percent >= self.query_match_threshold_pct
            and index_matched_percent >= self.index_match_threshold_pct
        ):
            matches.append(
                IndexMatch(
                    VPDQSimilarityInfo(
                        query_matched_percent, index_matched_percent
                    ),
                    self._entry_idx_to_features_and_entries[entry_id][1],
                )
            )
    return matches