问题描述
我想通过以下代码使用MilvusVectorStore创建集合。index_params = {"index_type":"FLAT"} METRIC_TYPE = 'L2' vector_store = MilvusVectorStore(collection_name=COLLECTION_NAME, uri=MILVUS_URL, dim=DIM, similarity_metric=METRIC_TYPE, db_name=DBNAME, overwrite=True, index_config=index_params ) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex(nodes,storage_context=storage_context)
我刚刚在Milvus中检查了度量类型,它总是'IP'。请检查一下。
版本
llama-index 0.10.18
重现步骤
只需使用以下Python代码来重现:
vector_store = MilvusVectorStore(collection_name=COLLECTION_NAME,
uri=MILVUS_URL,
dim=DIM,
similarity_metric=METRIC_TYPE,
db_name=DBNAME,
overwrite=True,
index_config=index_params
)
3条答案
按热度按时间mhd8tkvw1#
嘿,@shashade2012,很高兴再次见到你!希望你过得很好。让我们一起探讨你遇到的MilvusVectorStore度量类型问题。
感谢你报告这个问题。根据你提供的代码片段,当你初始化
MilvusVectorStore
对象时,似乎正确地将similarity_metric
设置为'L2'。然而,你观察到Milvus中的度量类型始终是'IP'。这可能是由以下几个原因导致的:
MilvusVectorStore
对象时,确实将similarity_metric
参数传递为'L2'(或'l2')。拼写错误或不正确的值可能导致使用默认的'IP'度量。self.similarity_metric
属性的代码路径,可能会导致观察到的行为。这需要对代码库进行彻底审查以确定。self.milvusclient.create_collection
调用创建新集合时,metric_type
参数被设置为self.similarity_metric
。如果集合已经存在,或者集合创建逻辑错误地设置或忽略了metric_type
,可能导致使用默认的'IP'度量。这是相关代码的一部分:
以及Milvus集合创建逻辑:
如果问题仍然存在,我建议你调试传递给
MilvusVectorStore
对象的初始化参数,并确保Milvus集合按预期以正确的度量类型创建或覆盖。关于你的LlamaIndex v0.10.19的问题,我很抱歉,但我没有关于该版本中
MilvusVectorStore
类的任何更改或更新的信息,这些更改或更新可能有助于解决此问题。希望这有所帮助!如果你有任何其他问题或需要进一步澄清,请随时提问。
来源
关于Dosu
这个响应旨在节省你的时间并提供帮助。它不是精确的解决方案,而是你自己研究的起点。
帮助我变得更有用!如果这有帮助请留下一个👍,如果无关请留下一个👎。
如果你想继续对话,请用@dosu-bot开始回复。
8ftvxx2r2#
你好
感谢快速回复。
但是我已经检查了我的输入指标是'L2'。
请看图片。
打印结果是'IP'
谢谢。
fd3cxomn3#
我检查了最新的代码,看到了以下内容:
这里有一个缺失的 "self.similarity_metric",可能是根本原因。