# BM25RetrievalStrategy

> **Class** in `langchain_elasticsearch`

📖 [View in docs](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy)

Retrieval strategy using the native BM25 algorithm of Elasticsearch.

## Signature

```python
BM25RetrievalStrategy(
    self,
    k1: Union[float, None] = None,
    b: Union[float, None] = None,
)
```

## Extends

- `BaseRetrievalStrategy`

## Constructors

```python
__init__(
    self,
    k1: Union[float, None] = None,
    b: Union[float, None] = None,
)
```

| Name | Type |
|------|------|
| `k1` | `Union[float, None]` |
| `b` | `Union[float, None]` |


## Properties

- `k1`
- `b`

## Methods

- [`query()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy/query)
- [`index()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy/index)
- [`require_inference()`](https://reference.langchain.com/python/langchain-elasticsearch/_utilities/BM25RetrievalStrategy/require_inference)

## ⚠️ Deprecated

Deprecated since version 0.2.0. Use BM25Strategy instead.

---

[View source on GitHub](https://github.com/langchain-ai/langchain-elastic/blob/e78a327f38e09abd10128ed28c8774e9a8f9fec0/libs/elasticsearch/langchain_elasticsearch/_utilities.py#L470)