我想在 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 犯了这个错误,所以我认为一定有某种方法可以做到这一点。但我似乎无法在互联网上找到它。
从
pgvector-haystack
>=0.4.0开始,这两个参数可用:
hnsw_index_name
keyword_index_name
.如果您没有看到它们,请尝试更新软件包:
pip install -U pgvector-haystack