# DB2VS

> **Class** in `langchain_db2`

📖 [View in docs](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS)

`DB2VS` vector store.

## Signature

```python
DB2VS(
    self,
    embedding_function: Callable[[str], list[float]] | Embeddings,
    table_name: str,
    client: Connection | None = None,
    distance_strategy: DistanceStrategy = DistanceStrategy.EUCLIDEAN_DISTANCE,
    query: str | None = 'What is a Db2 database',
    params: dict[str, Any] | None = None,
    connection_args: dict[str, Any] | None = None,
    text_field: str = 'text',
)
```

## Description

???+ info "Setup"

    To use, you should have:

    - the `langchain_db2` python package installed
    - a connection to db2 database with vector store feature (v12.1.2+)

    ```bash
    pip install -U langchain-db2

    # or using uv
    uv add langchain-db2
    ```

??? info "Instantiate"

    Create a Vector Store instance with `ibm_db_dbi.Connection` object

    ```python
    from langchain_db2 import DB2VS

    db2vs = DB2VS(
        embedding_function=embeddings, table_name=table_name, client=db_client
    )
    ```

    Create a Vector Store instance with `connection_args`

    ```python
    from langchain_db2 import DB2VS

    db2vs = DB2VS(
        embedding_function=embeddings,
        table_name=table_name,
        connection_args={
            "database": "<DATABASE>",
            "host": "<HOST>",
            "port": "<PORT>",
            "username": "<USERNAME>",
            "password": "<PASSWORD>",
            "security": False,
        },
    )
    ```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `embedding_function` | `Callable[[str], list[float]] \| Embeddings` | Yes | The embedding backend used to generate vectors for stored texts and queries |
| `table_name` | `str` | Yes | DB2 table name |
| `client` | `Connection \| None` | No | Existing DB2 connection. Required if `connection_args` is not provided (default: `None`) |
| `distance_strategy` | `DistanceStrategy` | No | Similarity metric used by Db2 `VECTOR_DISTANCE` when ranking results (default: `DistanceStrategy.EUCLIDEAN_DISTANCE`) |
| `query` | `str \| None` | No | Probe text used once to infer embedding dimension (default: `'What is a Db2 database'`) |
| `params` | `dict[str, Any] \| None` | No | Extra options (default: `None`) |
| `connection_args` | `dict[str, Any] \| None` | No | Connection parameters used when `client` is not supplied. Expected keys: `{"database": str, "host": str, "port": str, "username": str, "password": str, "security": bool}` (default: `None`) |
| `text_field` | `str` | No | Column name for the raw text (CLOB) (default: `'text'`) |

## Extends

- `VectorStore`

## Constructors

```python
__init__(
    self,
    embedding_function: Callable[[str], list[float]] | Embeddings,
    table_name: str,
    client: Connection | None = None,
    distance_strategy: DistanceStrategy = DistanceStrategy.EUCLIDEAN_DISTANCE,
    query: str | None = 'What is a Db2 database',
    params: dict[str, Any] | None = None,
    connection_args: dict[str, Any] | None = None,
    text_field: str = 'text',
)
```

| Name | Type |
|------|------|
| `embedding_function` | `Callable[[str], list[float]] \| Embeddings` |
| `table_name` | `str` |
| `client` | `Connection \| None` |
| `distance_strategy` | `DistanceStrategy` |
| `query` | `str \| None` |
| `params` | `dict[str, Any] \| None` |
| `connection_args` | `dict[str, Any] \| None` |
| `text_field` | `str` |


## Properties

- `client`
- `embedding_function`
- `query`
- `table_name`
- `distance_strategy`
- `params`
- `embeddings`

## Methods

- [`get_embedding_dimension()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/get_embedding_dimension)
- [`add_texts()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/add_texts)
- [`similarity_search()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/similarity_search)
- [`similarity_search_by_vector()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/similarity_search_by_vector)
- [`similarity_search_with_score()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/similarity_search_with_score)
- [`similarity_search_by_vector_with_relevance_scores()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/similarity_search_by_vector_with_relevance_scores)
- [`similarity_search_by_vector_returning_embeddings()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/similarity_search_by_vector_returning_embeddings)
- [`max_marginal_relevance_search_with_score_by_vector()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/max_marginal_relevance_search_with_score_by_vector)
- [`max_marginal_relevance_search_by_vector()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/max_marginal_relevance_search_by_vector)
- [`max_marginal_relevance_search()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/max_marginal_relevance_search)
- [`delete()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/delete)
- [`from_texts()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/from_texts)
- [`get_pks()`](https://reference.langchain.com/python/langchain-db2/db2vs/DB2VS/get_pks)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-ibm/blob/68e9b09f8cbc8d2310e57a6a7eb51cde0956a3b0/libs/langchain-db2/langchain_db2/db2vs.py#L219)