langchain.vectorstores.clickhouse.Clickhouse¶

class langchain.vectorstores.clickhouse.Clickhouse(embedding: Embeddings, config: Optional[ClickhouseSettings] = None, **kwargs: Any)[source]¶

Bases: VectorStore

Wrapper around ClickHouse vector database

You need a clickhouse-connect python package, and a valid account to connect to ClickHouse.

ClickHouse can not only search with simple vector indexes, it also supports complex query with multiple conditions, constraints and even sub-queries.

For more information, please visit

[ClickHouse official site](https://clickhouse.com/clickhouse)

ClickHouse Wrapper to LangChain

embedding_function (Embeddings): config (ClickHouseSettings): Configuration to ClickHouse Client Other keyword arguments will pass into

[clickhouse-connect](https://docs.clickhouse.com/)

Methods

__init__(embedding[, config])

ClickHouse Wrapper to LangChain

aadd_documents(documents, **kwargs)

Run more documents through the embeddings and add to the vectorstore.

aadd_texts(texts[, metadatas])

Run more texts through the embeddings and add to the vectorstore.

add_documents(documents, **kwargs)

Run more documents through the embeddings and add to the vectorstore.

add_texts(texts[, metadatas, batch_size, ids])

Insert more texts through the embeddings and add to the VectorStore.

afrom_documents(documents, embedding, **kwargs)

Return VectorStore initialized from documents and embeddings.

afrom_texts(texts, embedding[, metadatas])

Return VectorStore initialized from texts and embeddings.

amax_marginal_relevance_search(query[, k, ...])

Return docs selected using the maximal marginal relevance.

amax_marginal_relevance_search_by_vector(...)

Return docs selected using the maximal marginal relevance.

as_retriever(**kwargs)

asearch(query, search_type, **kwargs)

Return docs most similar to query using specified search type.

asimilarity_search(query[, k])

Return docs most similar to query.

asimilarity_search_by_vector(embedding[, k])

Return docs most similar to embedding vector.

asimilarity_search_with_relevance_scores(query)

Return docs most similar to query.

delete([ids])

Delete by vector ID or other criteria.

drop()

Helper function: Drop data

escape_str(value)

from_documents(documents, embedding, **kwargs)

Return VectorStore initialized from documents and embeddings.

from_texts(texts, embedding[, metadatas, ...])

Create ClickHouse wrapper with existing texts

max_marginal_relevance_search(query[, k, ...])

Return docs selected using the maximal marginal relevance.

max_marginal_relevance_search_by_vector(...)

Return docs selected using the maximal marginal relevance.

search(query, search_type, **kwargs)

Return docs most similar to query using specified search type.

similarity_search(query[, k, where_str])

Perform a similarity search with ClickHouse

similarity_search_by_vector(embedding[, k, ...])

Perform a similarity search with ClickHouse by vectors

similarity_search_with_relevance_scores(query)

Perform a similarity search with ClickHouse

similarity_search_with_score(*args, **kwargs)

Run similarity search with distance.

Attributes

embeddings

Access the query embedding object if available.

metadata_column

async aadd_documents(documents: List[Document], **kwargs: Any) List[str]¶

Run more documents through the embeddings and add to the vectorstore.

Parameters

(List[Document] (documents) – Documents to add to the vectorstore.

Returns

List of IDs of the added texts.

Return type

List[str]

async aadd_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str]¶

Run more texts through the embeddings and add to the vectorstore.

add_documents(documents: List[Document], **kwargs: Any) List[str]¶

Run more documents through the embeddings and add to the vectorstore.

Parameters

(List[Document] (documents) – Documents to add to the vectorstore.

Returns

List of IDs of the added texts.

Return type

List[str]

add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, batch_size: int = 32, ids: Optional[Iterable[str]] = None, **kwargs: Any) List[str][source]¶

Insert more texts through the embeddings and add to the VectorStore.

Parameters
  • texts – Iterable of strings to add to the VectorStore.

  • ids – Optional list of ids to associate with the texts.

  • batch_size – Batch size of insertion

  • metadata – Optional column data to be inserted

Returns

List of ids from adding the texts into the VectorStore.

async classmethod afrom_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST¶

Return VectorStore initialized from documents and embeddings.

async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) VST¶

Return VectorStore initialized from texts and embeddings.

Return docs selected using the maximal marginal relevance.

async amax_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]¶

Return docs selected using the maximal marginal relevance.

as_retriever(**kwargs: Any) VectorStoreRetriever¶
async asearch(query: str, search_type: str, **kwargs: Any) List[Document]¶

Return docs most similar to query using specified search type.

Return docs most similar to query.

async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]¶

Return docs most similar to embedding vector.

async asimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]¶

Return docs most similar to query.

delete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool]¶

Delete by vector ID or other criteria.

Parameters
  • ids – List of ids to delete.

  • **kwargs – Other keyword arguments that subclasses might use.

Returns

True if deletion is successful, False otherwise, None if not implemented.

Return type

Optional[bool]

drop() None[source]¶

Helper function: Drop data

escape_str(value: str) str[source]¶
classmethod from_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST¶

Return VectorStore initialized from documents and embeddings.

classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[Dict[Any, Any]]] = None, config: Optional[ClickhouseSettings] = None, text_ids: Optional[Iterable[str]] = None, batch_size: int = 32, **kwargs: Any) Clickhouse[source]¶

Create ClickHouse wrapper with existing texts

Parameters
  • embedding_function (Embeddings) – Function to extract text embedding

  • texts (Iterable[str]) – List or tuple of strings to be added

  • config (ClickHouseSettings, Optional) – ClickHouse configuration

  • text_ids (Optional[Iterable], optional) – IDs for the texts. Defaults to None.

  • batch_size (int, optional) – Batchsize when transmitting data to ClickHouse. Defaults to 32.

  • metadata (List[dict], optional) – metadata to texts. Defaults to None.

  • into (Other keyword arguments will pass) – [clickhouse-connect](https://clickhouse.com/docs/en/integrations/python#clickhouse-connect-driver-api)

Returns

ClickHouse Index

Return docs selected using the maximal marginal relevance.

Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.

Parameters
  • query – Text to look up documents similar to.

  • k – Number of Documents to return. Defaults to 4.

  • fetch_k – Number of Documents to fetch to pass to MMR algorithm.

  • lambda_mult – Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5.

Returns

List of Documents selected by maximal marginal relevance.

max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]¶

Return docs selected using the maximal marginal relevance.

Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.

Parameters
  • embedding – Embedding to look up documents similar to.

  • k – Number of Documents to return. Defaults to 4.

  • fetch_k – Number of Documents to fetch to pass to MMR algorithm.

  • lambda_mult – Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5.

Returns

List of Documents selected by maximal marginal relevance.

search(query: str, search_type: str, **kwargs: Any) List[Document]¶

Return docs most similar to query using specified search type.

Perform a similarity search with ClickHouse

Parameters
  • query (str) – query string

  • k (int, optional) – Top K neighbors to retrieve. Defaults to 4.

  • where_str (Optional[str], optional) – where condition string. Defaults to None.

  • NOTE – Please do not let end-user to fill this and always be aware of SQL injection. When dealing with metadatas, remember to use {self.metadata_column}.attribute instead of attribute alone. The default name for it is metadata.

Returns

List of Documents

Return type

List[Document]

similarity_search_by_vector(embedding: List[float], k: int = 4, where_str: Optional[str] = None, **kwargs: Any) List[Document][source]¶

Perform a similarity search with ClickHouse by vectors

Parameters
  • query (str) – query string

  • k (int, optional) – Top K neighbors to retrieve. Defaults to 4.

  • where_str (Optional[str], optional) – where condition string. Defaults to None.

  • NOTE – Please do not let end-user to fill this and always be aware of SQL injection. When dealing with metadatas, remember to use {self.metadata_column}.attribute instead of attribute alone. The default name for it is metadata.

Returns

List of (Document, similarity)

Return type

List[Document]

similarity_search_with_relevance_scores(query: str, k: int = 4, where_str: Optional[str] = None, **kwargs: Any) List[Tuple[Document, float]][source]¶

Perform a similarity search with ClickHouse

Parameters
  • query (str) – query string

  • k (int, optional) – Top K neighbors to retrieve. Defaults to 4.

  • where_str (Optional[str], optional) – where condition string. Defaults to None.

  • NOTE – Please do not let end-user to fill this and always be aware of SQL injection. When dealing with metadatas, remember to use {self.metadata_column}.attribute instead of attribute alone. The default name for it is metadata.

Returns

List of documents

Return type

List[Document]

similarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]]¶

Run similarity search with distance.

property embeddings: langchain.embeddings.base.Embeddings¶

Access the query embedding object if available.

property metadata_column: str¶

Examples using Clickhouse¶