Home / Function/ similarity_search_with_score() — langchain Function Reference

similarity_search_with_score() — langchain Function Reference

Architecture documentation for the similarity_search_with_score() function in qdrant.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  554efa04_b226_2427_5014_2b27a2b0b32f["similarity_search_with_score()"]
  671b47a0_cdd3_a89d_e90f_0631a4bd67d3["QdrantVectorStore"]
  554efa04_b226_2427_5014_2b27a2b0b32f -->|defined in| 671b47a0_cdd3_a89d_e90f_0631a4bd67d3
  7d69a481_b834_1cc5_a801_d2c961c57680["similarity_search()"]
  7d69a481_b834_1cc5_a801_d2c961c57680 -->|calls| 554efa04_b226_2427_5014_2b27a2b0b32f
  301071b8_045d_6589_e8d8_41bad61e4260["_require_embeddings()"]
  554efa04_b226_2427_5014_2b27a2b0b32f -->|calls| 301071b8_045d_6589_e8d8_41bad61e4260
  a55135fe_576d_57f4_200f_c6402baada22["_document_from_point()"]
  554efa04_b226_2427_5014_2b27a2b0b32f -->|calls| a55135fe_576d_57f4_200f_c6402baada22
  style 554efa04_b226_2427_5014_2b27a2b0b32f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/qdrant/langchain_qdrant/qdrant.py lines 551–643

    def similarity_search_with_score(
        self,
        query: str,
        k: int = 4,
        filter: models.Filter | None = None,  # noqa: A002
        search_params: models.SearchParams | None = None,
        offset: int = 0,
        score_threshold: float | None = None,
        consistency: models.ReadConsistency | None = None,
        hybrid_fusion: models.FusionQuery | None = None,
        **kwargs: Any,
    ) -> list[tuple[Document, float]]:
        """Return docs most similar to query.

        Returns:
            List of documents most similar to the query text and distance for each.

        """
        query_options = {
            "collection_name": self.collection_name,
            "query_filter": filter,
            "search_params": search_params,
            "limit": k,
            "offset": offset,
            "with_payload": True,
            "with_vectors": False,
            "score_threshold": score_threshold,
            "consistency": consistency,
            **kwargs,
        }
        if self.retrieval_mode == RetrievalMode.DENSE:
            embeddings = self._require_embeddings("DENSE mode")
            query_dense_embedding = embeddings.embed_query(query)
            results = self.client.query_points(
                query=query_dense_embedding,
                using=self.vector_name,
                **query_options,
            ).points

        elif self.retrieval_mode == RetrievalMode.SPARSE:
            query_sparse_embedding = self.sparse_embeddings.embed_query(query)
            results = self.client.query_points(
                query=models.SparseVector(
                    indices=query_sparse_embedding.indices,
                    values=query_sparse_embedding.values,
                ),
                using=self.sparse_vector_name,
                **query_options,
            ).points

        elif self.retrieval_mode == RetrievalMode.HYBRID:
            embeddings = self._require_embeddings("HYBRID mode")
            query_dense_embedding = embeddings.embed_query(query)
            query_sparse_embedding = self.sparse_embeddings.embed_query(query)
            results = self.client.query_points(
                prefetch=[
                    models.Prefetch(
                        using=self.vector_name,
                        query=query_dense_embedding,
                        filter=filter,
                        limit=k,
                        params=search_params,
                    ),
                    models.Prefetch(
                        using=self.sparse_vector_name,
                        query=models.SparseVector(
                            indices=query_sparse_embedding.indices,
                            values=query_sparse_embedding.values,
                        ),
                        filter=filter,
                        limit=k,
                        params=search_params,
                    ),
                ],
                query=hybrid_fusion or models.FusionQuery(fusion=models.Fusion.RRF),
                **query_options,
            ).points

        else:
            msg = f"Invalid retrieval mode. {self.retrieval_mode}."
            raise ValueError(msg)

Domain

Subdomains

Frequently Asked Questions

What does similarity_search_with_score() do?
similarity_search_with_score() is a function in the langchain codebase, defined in libs/partners/qdrant/langchain_qdrant/qdrant.py.
Where is similarity_search_with_score() defined?
similarity_search_with_score() is defined in libs/partners/qdrant/langchain_qdrant/qdrant.py at line 551.
What does similarity_search_with_score() call?
similarity_search_with_score() calls 2 function(s): _document_from_point, _require_embeddings.
What calls similarity_search_with_score()?
similarity_search_with_score() is called by 1 function(s): similarity_search.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free