搜索引擎

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]][source]

使用稀疏嵌入通过 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 时使用。可以使用与查询嵌入相同的 decode 方法获得。

  • corpus_index – (Elasticsearch, collection_name) 元组。如果提供,则使用此现有索引进行搜索。

  • top_k – 要检索的前 k 个结果的数量。

  • output_index – 是否返回 Elasticsearch 客户端和 collection_name。

返回:

  • 搜索结果列表,格式为 [[{“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]][source]

使用稀疏嵌入通过 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 时使用。可以使用与查询嵌入相同的 decode 方法获得。

  • corpus_index – (OpenSearch, collection_name) 元组。如果提供,则使用此现有索引进行搜索。

  • top_k – 要检索的前 k 个结果的数量。

  • output_index – 是否返回 OpenSearch 客户端和 collection_name。

  • 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]][source]

使用稀疏嵌入通过 Qdrant 执行语义搜索。

参数:
  • query_embeddings – 包含查询嵌入的 PyTorch COO 稀疏张量。

  • corpus_embeddings – 包含语料库嵌入的 PyTorch COO 稀疏张量。仅在 corpus_index 为 None 时使用。

  • corpus_index – (QdrantClient, collection_name) 元组。如果提供,则使用此现有索引进行搜索。

  • top_k – 要检索的前 k 个结果的数量。

  • output_index – 是否返回 Qdrant 客户端和 collection_name。

返回:

  • 搜索结果列表,格式为 [[{“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]][source]

使用稀疏嵌入通过 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 时使用。可以使用与查询嵌入相同的 decode 方法获得。

  • corpus_index – (SeismicIndex, collection_name) 元组。如果提供,则使用此现有索引进行搜索。

  • top_k – 要检索的前 k 个结果的数量。

  • output_index – 是否返回 SeismicIndex 客户端和 collection_name。

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

返回类型:

一个包含