# Milvus

> **Class** in `langchain_milvus`

📖 [View in docs](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus)

Milvus vector store integration.

## Signature

```python
Milvus(
    self,
    embedding_function: Optional[Union[EmbeddingType, List[EmbeddingType]]],
    collection_name: str = 'LangChainCollection',
    collection_description: str = '',
    collection_properties: Optional[dict[str, Any]] = None,
    connection_args: Optional[dict[str, Any]] = None,
    consistency_level: str = 'Session',
    index_params: Optional[Union[dict, List[dict]]] = None,
    search_params: Optional[Union[dict, List[dict]]] = None,
    drop_old: Optional[bool] = False,
    auto_id: bool = False,
    *,
    primary_field: str = PRIMARY_FIELD,
    text_field: str = TEXT_FIELD,
    vector_field: Union[str, List[str]] = VECTOR_FIELD,
    enable_dynamic_field: bool = False,
    metadata_field: Optional[str] = None,
    partition_key_field: Optional[str] = None,
    num_partitions: Optional[int] = None,
    partition_names: Optional[list] = None,
    replica_number: int = 1,
    timeout: Optional[float] = None,
    num_shards: Optional[int] = None,
    vector_schema: Optional[Union[dict[str, Any], List[dict[str, Any]]]] = None,
    metadata_schema: Optional[dict[str, Any]] = None,
    builtin_function: Optional[Union[BaseMilvusBuiltInFunction, List[BaseMilvusBuiltInFunction]]] = None,
)
```

## Description

**Setup:**

Install `langchain_milvus` package:

```bash
pip install -qU  langchain_milvus
```

Key init args — indexing params:
    collection_name: str
        Name of the collection.
    collection_description: str
        Description of the collection.
    embedding_function: Union[Embeddings, BaseSparseEmbedding]
        Embedding function to use.

Key init args — client params:
    connection_args: Optional[dict]
        Connection arguments.

**Instantiate:**

```python
from langchain_milvus import Milvus
from langchain_openai import OpenAIEmbeddings

URI = "./milvus_example.db"

vector_store = Milvus(
    embedding_function=OpenAIEmbeddings(),
    connection_args={"uri": URI},
)
```

**Add Documents:**

```python
from langchain_core.documents import Document

document_1 = Document(page_content="foo", metadata={"baz": "bar"})
document_2 = Document(page_content="thud", metadata={"baz": "baz"})
document_3 = Document(page_content="i will be deleted :(", metadata={"baz": "qux"})

documents = [document_1, document_2, document_3]
ids = ["1", "2", "3"]
vector_store.add_documents(documents=documents, ids=ids)
```

**Delete Documents:**

```python
vector_store.delete(ids=["3"])
```

**Search:**

```python
results = vector_store.similarity_search(query="thud",k=1)
for doc in results:
    print(f"* {doc.page_content} [{doc.metadata}]")
```

```python
* thud [{'baz': 'baz', 'pk': '2'}]
```

**Search with score:**

```python
results = vector_store.similarity_search_with_score(query="qux",k=1)
for doc, score in results:
    print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
```

```python
* [SIM=0.335463] foo [{'baz': 'bar', 'pk': '1'}]
```

**Async:**

```python
# add documents
# await vector_store.aadd_documents(documents=documents, ids=ids)

# delete documents
# await vector_store.adelete(ids=["3"])

# search
# results = vector_store.asimilarity_search(query="thud",k=1)

# search with score
results = await vector_store.asimilarity_search_with_score(query="qux",k=1)
for doc,score in results:
    print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]")
```

```python
* [SIM=0.335463] foo [{'baz': 'bar', 'pk': '1'}]
```

**Use as Retriever:**

```python
retriever = vector_store.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 1, "fetch_k": 2, "lambda_mult": 0.5},
)
retriever.invoke("thud")
```

```python
[Document(metadata={'baz': 'baz', 'pk': '2'}, page_content='thud')]
```

## Extends

- `VectorStore`

## Constructors

```python
__init__(
    self,
    embedding_function: Optional[Union[EmbeddingType, List[EmbeddingType]]],
    collection_name: str = 'LangChainCollection',
    collection_description: str = '',
    collection_properties: Optional[dict[str, Any]] = None,
    connection_args: Optional[dict[str, Any]] = None,
    consistency_level: str = 'Session',
    index_params: Optional[Union[dict, List[dict]]] = None,
    search_params: Optional[Union[dict, List[dict]]] = None,
    drop_old: Optional[bool] = False,
    auto_id: bool = False,
    *,
    primary_field: str = PRIMARY_FIELD,
    text_field: str = TEXT_FIELD,
    vector_field: Union[str, List[str]] = VECTOR_FIELD,
    enable_dynamic_field: bool = False,
    metadata_field: Optional[str] = None,
    partition_key_field: Optional[str] = None,
    num_partitions: Optional[int] = None,
    partition_names: Optional[list] = None,
    replica_number: int = 1,
    timeout: Optional[float] = None,
    num_shards: Optional[int] = None,
    vector_schema: Optional[Union[dict[str, Any], List[dict[str, Any]]]] = None,
    metadata_schema: Optional[dict[str, Any]] = None,
    builtin_function: Optional[Union[BaseMilvusBuiltInFunction, List[BaseMilvusBuiltInFunction]]] = None,
)
```

| Name | Type |
|------|------|
| `embedding_function` | `Optional[Union[EmbeddingType, List[EmbeddingType]]]` |
| `collection_name` | `str` |
| `collection_description` | `str` |
| `collection_properties` | `Optional[dict[str, Any]]` |
| `connection_args` | `Optional[dict[str, Any]]` |
| `consistency_level` | `str` |
| `index_params` | `Optional[Union[dict, List[dict]]]` |
| `search_params` | `Optional[Union[dict, List[dict]]]` |
| `drop_old` | `Optional[bool]` |
| `auto_id` | `bool` |
| `primary_field` | `str` |
| `text_field` | `str` |
| `vector_field` | `Union[str, List[str]]` |
| `enable_dynamic_field` | `bool` |
| `metadata_field` | `Optional[str]` |
| `partition_key_field` | `Optional[str]` |
| `num_partitions` | `Optional[int]` |
| `partition_names` | `Optional[list]` |
| `replica_number` | `int` |
| `timeout` | `Optional[float]` |
| `num_shards` | `Optional[int]` |
| `vector_schema` | `Optional[Union[dict[str, Any], List[dict[str, Any]]]]` |
| `metadata_schema` | `Optional[dict[str, Any]]` |
| `builtin_function` | `Optional[Union[BaseMilvusBuiltInFunction, List[BaseMilvusBuiltInFunction]]]` |


## Properties

- `default_search_params`
- `embedding_func`
- `builtin_func`
- `collection_name`
- `collection_description`
- `collection_properties`
- `index_params`
- `search_params`
- `consistency_level`
- `auto_id`
- `num_partitions`
- `enable_dynamic_field`
- `fields`
- `partition_names`
- `replica_number`
- `timeout`
- `num_shards`
- `metadata_schema`
- `alias`
- `col`
- `embeddings`
- `client`
- `aclient`
- `vector_fields`

## Methods

- [`add_texts()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/add_texts)
- [`add_embeddings()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/add_embeddings)
- [`similarity_search()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/similarity_search)
- [`similarity_search_by_vector()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/similarity_search_by_vector)
- [`similarity_search_with_score()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/similarity_search_with_score)
- [`similarity_search_with_score_by_vector()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/similarity_search_with_score_by_vector)
- [`max_marginal_relevance_search()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/max_marginal_relevance_search)
- [`max_marginal_relevance_search_by_vector()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/max_marginal_relevance_search_by_vector)
- [`delete()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/delete)
- [`drop()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/drop)
- [`from_texts()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/from_texts)
- [`add_documents()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/add_documents)
- [`get_pks()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/get_pks)
- [`upsert()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/upsert)
- [`search_by_metadata()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/search_by_metadata)
- [`aadd_texts()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/aadd_texts)
- [`aadd_embeddings()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/aadd_embeddings)
- [`asimilarity_search()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/asimilarity_search)
- [`asimilarity_search_by_vector()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/asimilarity_search_by_vector)
- [`asimilarity_search_with_score()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/asimilarity_search_with_score)
- [`asimilarity_search_with_score_by_vector()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/asimilarity_search_with_score_by_vector)
- [`amax_marginal_relevance_search()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/amax_marginal_relevance_search)
- [`amax_marginal_relevance_search_by_vector()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/amax_marginal_relevance_search_by_vector)
- [`adelete()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/adelete)
- [`afrom_texts()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/afrom_texts)
- [`aadd_documents()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/aadd_documents)
- [`aget_pks()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/aget_pks)
- [`aupsert()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/aupsert)
- [`asearch_by_metadata()`](https://reference.langchain.com/python/langchain-milvus/vectorstores/milvus/Milvus/asearch_by_metadata)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-milvus/blob/fe9d63e6dcae52e4c2e2ef4dafd5a6f7ee9b254c/libs/milvus/langchain_milvus/vectorstores/milvus.py#L151)