Return docs most similar to query.
By default, supports Approximate Search. Also supports Script Scoring and Painless Scripting.
similarity_search(
self,
query: str,
k: int = 4,
score_threshold: Optional[float] = 0.0,
**kwargs: Any = {}
) -> List[Document]Optional Args:
vector_field: Document field embeddings are stored in. Defaults to "vector_field".
text_field: Document field the text of the document is stored in. Defaults to "text".
metadata_field: Document field that metadata is stored in. Defaults to "metadata". Can be set to a special value "*" to include the entire document.
Optional Args for Approximate Search:
search_type: "approximate_search"; default: "approximate_search"
boolean_filter: A Boolean filter is a post filter consists of a Boolean query that contains a k-NN query and a filter.
subquery_clause: Query clause on the knn vector field; default: "must"
lucene_filter: the Lucene algorithm decides whether to perform an exact
k-NN search with pre-filtering or an approximate search with modified
post-filtering. (deprecated, use efficient_filter)
efficient_filter: the Lucene Engine or Faiss Engine decides whether to perform an exact k-NN search with pre-filtering or an approximate search with modified post-filtering.
Optional Args for Script Scoring Search:
search_type: "script_scoring"; default: "approximate_search"
space_type: "l2", "l1", "linf", "cosinesimil", "innerproduct", "hammingbit"; default: "l2"
pre_filter: script_score query to pre-filter documents before identifying nearest neighbors; default: {"match_all": {}}
Optional Args for Painless Scripting Search:
search_type: "painless_scripting"; default: "approximate_search"
space_type: "l2Squared", "l1Norm", "cosineSimilarity"; default: "l2Squared"
pre_filter: script_score query to pre-filter documents before identifying nearest neighbors; default: {"match_all": {}}