搜索引擎

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 – 要检索的顶部结果数量

  • 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 – 要检索的顶部结果数量

  • output_index – 是否返回 OpenSearch 客户端和集合名称

  • vocab – 用于将词元转换为词元 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 – 要检索的顶部结果数量

  • 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 – 要检索的顶部结果数量

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

返回类型:

包含以下内容的元组