Search in cache

        :param strings: list of strings to get from the cache
        :type strings: str list
        :param limit: limit search results
        :type limit: int

        :rtype: [Resource | Collection]

def _search(self, trie, strings, limit=None):
        """Search in cache

        :param strings: list of strings to get from the cache
        :type strings: str list
        :param limit: limit search results
        :type limit: int

        :rtype: [Resource | Collection]
        """
        results = [trie.has_keys_with_prefix(s) for s in strings]
        if not any(results):
            return []
        for result, s in zip(results, strings):
            if result is True:
                return trie.values(s)[:limit]