async def aquery(
        self,
        query_mode: VectorStoreQueryMode,
        query_str: Optional[str],
        query_embedding: List[float],
        k: int,
        filters: Optional[MetadataFilters] = None,
    ) -> VectorStoreQueryResult:
        """
        Do vector search.

        Args:
            query_mode (VectorStoreQueryMode): Query mode.
            query_str (Optional[str]): Query string.
            query_embedding (List[float]): Query embedding.
            k (int): Maximum number of results.

        Optional Args:
            filters(Optional[MetadataFilters]): Optional filters to apply before the search.
                Supports filter-context queries documented at
                https://opensearch.org/docs/latest/query-dsl/query-filter-context/

        Returns:
            VectorStoreQueryResult.

        """
        if query_mode == VectorStoreQueryMode.HYBRID:
            if query_str is None:
                raise ValueError(INVALID_HYBRID_QUERY_ERROR)
            search_query = self._hybrid_search_query(
                text_field=self._text_field,
                query_str=query_str,
                vector_field=self._vector_field,
                query_embedding=query_embedding,
                k=k,
                filters=filters,
                filter_type=self._filter_type,
                nprobe=self._nprobe,
                reorder_factor=self._reorder_factor,
            )
            params = None
        elif query_mode == VectorStoreQueryMode.TEXT_SEARCH:
            search_query = self._lexical_search_query(
                self._text_field, query_str, k, filters=filters
            )
            params = None
        else:
            search_query = self._knn_search_query(
                vector_field=self._vector_field,
                query_embedding=query_embedding,
                k=k,
                filters=filters,
                filter_type=self._filter_type,
                nprobe=self._nprobe,
                reorder_factor=self._reorder_factor,
            )
            params = None

        res = await self._os_client.search(
            index=self._index, body=search_query, _source=True, params=params
        )

        return self._to_query_result(res)

        Do vector search.

        Args:
            query_mode (VectorStoreQueryMode): Query mode.
            query_str (Optional[str]): Query string.
            query_embedding (List[float]): Query embedding.
            k (int): Maximum number of results.

        Optional Args:
            filters(Optional[MetadataFilters]): Optional filters to apply before the search.
                Supports filter-context queries documented at
                https://opensearch.org/docs/latest/query-dsl/query-filter-context/

        Returns:
            VectorStoreQueryResult.

        
llama-index-integrations/vector_stores/llama-index-vector-stores-lindorm/llama_index/vector_stores/lindorm/base.py