langchain.vectorstores.elasticsearch.ApproxRetrievalStrategy

class langchain.vectorstores.elasticsearch.ApproxRetrievalStrategy(query_model_id: Optional[str] = None, hybrid: Optional[bool] = False, rrf: Optional[Union[dict, bool]] = True)[source]

Approximate retrieval strategy using the HNSW algorithm.

Methods

__init__([query_model_id, hybrid, rrf])

before_index_setup(client, text_field, ...)

Executes before the index is created.

index(dims_length, vector_query_field, ...)

Create the mapping for the Elasticsearch index.

query(query_vector, query, k, fetch_k, ...)

Executes when a search is performed on the store.

require_inference()

Returns whether or not the strategy requires inference to be performed on the text before it is added to the index.

__init__(query_model_id: Optional[str] = None, hybrid: Optional[bool] = False, rrf: Optional[Union[dict, bool]] = True)[source]
before_index_setup(client: Elasticsearch, text_field: str, vector_query_field: str) None

Executes before the index is created. Used for setting up any required Elasticsearch resources like a pipeline.

Parameters
  • client – The Elasticsearch client.

  • text_field – The field containing the text data in the index.

  • vector_query_field – The field containing the vector representations in the index.

index(dims_length: Optional[int], vector_query_field: str, similarity: Optional[DistanceStrategy]) Dict[source]

Create the mapping for the Elasticsearch index.

query(query_vector: Optional[List[float]], query: Optional[str], k: int, fetch_k: int, vector_query_field: str, text_field: str, filter: List[dict], similarity: Optional[DistanceStrategy]) Dict[source]

Executes when a search is performed on the store.

Parameters
  • query_vector – The query vector, or None if not using vector-based query.

  • query – The text query, or None if not using text-based query.

  • k – The total number of results to retrieve.

  • fetch_k – The number of results to fetch initially.

  • vector_query_field – The field containing the vector representations in the index.

  • text_field – The field containing the text data in the index.

  • filter – List of filter clauses to apply to the query.

  • similarity – The similarity strategy to use, or None if not using one.

Returns

The Elasticsearch query body.

Return type

Dict

require_inference() bool

Returns whether or not the strategy requires inference to be performed on the text before it is added to the index.

Returns

Whether or not the strategy requires inference to be performed on the text before it is added to the index.

Return type

bool