使用 Haystack 的 PgvectorDocumentStore 时如何命名 PostgreSQL 索引?

问题描述 投票:0回答:1

我想在 PostgreSQL 数据库中创建表时为 PgvectorDocumentStore 创建的两个索引指定自定义名称。默认名称是 haystack_hnsw_index 和 haystack_keyword_index。

根据此页面:

https://docs.haystack.deepset.ai/reference/integrations-pgvector

我应该可以通过参数设置它:

def __init__(*,
         connection_string: Secret = Secret.from_env_var("PG_CONN_STR"),
         table_name: str = "haystack_documents",
         language: str = "english",
         embedding_dimension: int = 768,
         vector_function: Literal["cosine_similarity", "inner_product",
                                  "l2_distance"] = "cosine_similarity",
         recreate_table: bool = False,
         search_strategy: Literal["exact_nearest_neighbor",
                                  "hnsw"] = "exact_nearest_neighbor",
         hnsw_recreate_index_if_exists: bool = False,
         hnsw_index_creation_kwargs: Optional[Dict[str, int]] = None,
         hnsw_index_name: str = "haystack_hnsw_index",
         hnsw_ef_search: Optional[int] = None,
         keyword_index_name: str = "haystack_keyword_index")

但据我所知这些参数不存在。那么如何给这些索引起自己的名字呢?

我需要能够做到这一点,否则如果您使用不同的表名称创建一个新的 PgvectorDocumentStore ,您会收到错误,当它尝试为该表创建重复索引时,您最终会收到错误(因为名称很难编码始终相同。)

很难相信 Deepset 犯了这个错误,所以我认为一定有某种方法可以做到这一点。但我似乎无法在互联网上找到它。

python-3.x haystack
1个回答
0
投票

pgvector-haystack
>=0.4.0开始,这两个参数可用:

  • hnsw_index_name
  • keyword_index_name
    .

如果您没有看到它们,请尝试更新软件包:

pip install -U pgvector-haystack

© www.soinside.com 2019 - 2024. All rights reserved.