搜索引擎

`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) 元组

返回类型:

一个包含以下内容的元组