def _sparse_search(
        self, query: VectorStoreQuery, string_expr: str, output_fields: List[str]
    ) -> Tuple[List[BaseNode], List[float], List[str]]:
        """
        Perform sparse search or full text search.
        """
        search_params = {"params": {"drop_ratio_search": 0.2}}
        if isinstance(self.sparse_embedding_function, BaseSparseEmbeddingFunction):
            sparse_emb = self.sparse_embedding_function.encode_queries(
                [query.query_str]
            )[0]
            query_data = [sparse_emb]
        elif isinstance(self.sparse_embedding_function, BaseMilvusBuiltInFunction):
            query_data = [query.query_str]
        res = self.client.search(
            collection_name=self.collection_name,
            data=query_data,
            anns_field=self.sparse_embedding_field,
            limit=query.similarity_top_k,
            filter=string_expr,
            output_fields=output_fields,
            search_params=search_params,
        )
        nodes, similarities, ids = self._parse_from_milvus_results(res)
        return nodes, similarities, ids

        Perform sparse search or full text search.
        
llama-index-integrations/vector_stores/llama-index-vector-stores-milvus/llama_index/vector_stores/milvus/base.py