搜索引擎
`sentence_transformers.sparse_encoder.search_engines` 定义了不同的辅助函数,用于将生成的稀疏嵌入与向量数据库和搜索引擎集成。
- sentence_transformers.sparse_encoder.search_engines.semantic_search_elasticsearch(query_embeddings_decoded: list[list[tuple[str, float]]], corpus_embeddings_decoded: list[list[tuple[str, float]]] | None = None, corpus_index: tuple[Elasticsearch, str] | None = None, top_k: int = 10, output_index: bool = False, **kwargs: Any) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[Elasticsearch, str]] [源文件]
使用稀疏嵌入在 Elasticsearch 中执行语义搜索。
- 参数:
query_embeddings_decoded –
查询嵌入列表,格式为 [[(“token”: value), …], …] 示例:如何从 SparseEncoder 模型获取此格式
model = SparseEncoder('my-sparse-model') query_texts = ["your query text"] query_embeddings = model.encode(query_texts) query_embeddings_decoded = model.decode(query_embeddings)
corpus_embeddings_decoded – 语料库嵌入列表,格式为 [[(“token”: value), …], …] 仅在 corpus_index 为 None 时使用 可以使用与查询嵌入相同的解码方法获取
corpus_index – (Elasticsearch, collection_name) 元组 如果提供,则使用此现有索引进行搜索
top_k – 要检索的 top K 结果数量
output_index – 是否返回 Elasticsearch 客户端和集合名称
- 返回:
搜索结果列表,格式为 [[{“corpus_id”: int, “score”: float}, …], …]
搜索耗时
(可选)如果 output_index 为 True,则返回 (Elasticsearch, collection_name) 元组
- 返回类型:
一个包含以下内容的元组
- sentence_transformers.sparse_encoder.search_engines.semantic_search_opensearch(query_embeddings_decoded: list[list[tuple[str, float]]], corpus_embeddings_decoded: list[list[tuple[str, float]]] | None = None, corpus_index: tuple[OpenSearch, str] | None = None, top_k: int = 10, output_index: bool = False, **kwargs: Any) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[OpenSearch, str]] [源文件]
使用稀疏嵌入在 OpenSearch 中执行语义搜索。
- 参数:
query_embeddings_decoded –
查询嵌入列表,格式为 [[(“token”: value), …], …] 示例:如何从 SparseEncoder 模型获取此格式
model = SparseEncoder('my-sparse-model') query_texts = ["your query text"] query_embeddings = model.encode(query_texts) query_embeddings_decoded = model.decode(query_embeddings)
corpus_embeddings_decoded – 语料库嵌入列表,格式为 [[(“token”: value), …], …] 仅在 corpus_index 为 None 时使用 可以使用与查询嵌入相同的解码方法获取
corpus_index – (OpenSearch, collection_name) 元组 如果提供,则使用此现有索引进行搜索
top_k – 要检索的 top K 结果数量
output_index – 是否返回 OpenSearch 客户端和集合名称
vocab – 用于将 token 转换为 token id 的字典
- 返回:
搜索结果列表,格式为 [[{“corpus_id”: int, “score”: float}, …], …]
搜索耗时
(可选)如果 output_index 为 True,则返回 (OpenSearch, collection_name) 元组
- 返回类型:
一个包含以下内容的元组
- sentence_transformers.sparse_encoder.search_engines.semantic_search_qdrant(query_embeddings: torch.Tensor, corpus_embeddings: torch.Tensor | None = None, corpus_index: tuple[QdrantClient, str] | None = None, top_k: int = 10, output_index: bool = False, **kwargs: Any) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[QdrantClient, str]] [源文件]
使用稀疏嵌入在 Qdrant 中执行语义搜索。
- 参数:
query_embeddings – 包含查询嵌入的 PyTorch COO 稀疏张量
corpus_embeddings – 包含语料库嵌入的 PyTorch COO 稀疏张量 仅在 corpus_index 为 None 时使用
corpus_index – (QdrantClient, collection_name) 元组 如果提供,则使用此现有索引进行搜索
top_k – 要检索的 top K 结果数量
output_index – 是否返回 Qdrant 客户端和集合名称
- 返回:
搜索结果列表,格式为 [[{“corpus_id”: int, “score”: float}, …], …]
搜索耗时
(可选)如果 output_index 为 True,则返回 (QdrantClient, collection_name) 元组
- 返回类型:
一个包含以下内容的元组
- sentence_transformers.sparse_encoder.search_engines.semantic_search_seismic(query_embeddings_decoded: list[list[tuple[str, float]]], corpus_embeddings_decoded: list[list[tuple[str, float]]] | None = None, corpus_index: tuple[SeismicIndex, str] | None = None, top_k: int = 10, output_index: bool = False, index_kwargs: dict[str, Any] | None = None, search_kwargs: dict[str, Any] | None = None) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[SeismicIndex, str]] [源文件]
使用稀疏嵌入在 Seismic 中执行语义搜索。
- 参数:
query_embeddings_decoded –
查询嵌入列表,格式为 [[(“token”: value), …], …] 示例:如何从 SparseEncoder 模型获取此格式
model = SparseEncoder('my-sparse-model') query_texts = ["your query text"] query_embeddings = model.encode(query_texts) query_embeddings_decoded = model.decode(query_embeddings)
corpus_embeddings_decoded – 语料库嵌入列表,格式为 [[(“token”: value), …], …] 仅在 corpus_index 为 None 时使用 可以使用与查询嵌入相同的解码方法获取
corpus_index – (SeismicIndex, collection_name) 元组 如果提供,则使用此现有索引进行搜索
top_k – 要检索的 top K 结果数量
output_index – 是否返回 SeismicIndex 客户端和集合名称
index_kwargs – 传递给 build_from_dataset 的 SeismicIndex 附加参数,例如 centroid_fraction、min_cluster_size、summary_energy、nknn、knn_path、batched_indexing 或 num_threads。
search_kwargs – 传递给 batch_search 的 SeismicIndex 附加参数,例如 query_cut、heap_factor、n_knn、sorted 或 num_threads。注意:如果未提供 query_cut 和 heap_factor,则它们将设置为默认值。
- 返回:
搜索结果列表,格式为 [[{“corpus_id”: int, “score”: float}, …], …]
搜索耗时
(可选)如果 output_index 为 True,则返回 (SeismicIndex, collection_name) 元组
- 返回类型:
一个包含以下内容的元组