Bug描述
在运行具有相同索引名称的Elasticsearch时,进入生成响应的查询时出现错误。
查询id 40b9d01f-b211-413d-b3d4-a799eff700d6 在 retriever_dict 或 query_engine_dict 中都未找到。
如何解决这个错误?
我正在采取的一些临时解决方法是:通过更改索引名称来避免错误,那么如何在不更改索引名称的情况下解决错误?
版本
llama-index==0.10.12
重现步骤
from dense_pack2.base import DenseXRetrievalPack as dp2
from llama_index.vector_stores.elasticsearch import ElasticsearchStore
vector_store = ElasticsearchStore(
index_name="dense_index_56",
es_url=" [http://localhost:9200](http://localhost:9200) ",
)
- 无响应*
3条答案
按热度按时间r1zk6ea11#
要解决Elasticsearch中的错误 "Query id 40b9d01f-b211-413d-b3d4-a799eff700d6 在
retriever_dict
或query_engine_dict
中未找到",而无需更改索引名称,您需要确保查询ID在retriever_dict
或query_engine_dict
中正确注册。此错误通常表示系统无法识别查询ID。以下是一个代码片段,可以帮助您确保
RetrieverQueryEngine
正确设置:确保将
query_id
正确添加到retriever_dict
或query_engine_dict
中,并确保RetrieverQueryEngine
用必要的组件正确示例化。这应该可以在不更改索引名称 1(https://github.com/run-llama/llama_index/blob/main/llama-index-legacy/llama_index/legacy/query_engine/retriever_query_engine.py) 的情况下解决错误。ego6inou2#
LikhithRishi,这个概念验证的llama包并不是完全考虑到了外部矢量存储。
我们需要将
all_nodes
存储在docstore中(如果我们想稍后重建,需要保存和加载docstore)对源代码进行快速更改如下(以允许传入矢量存储并将节点存储在docstore中)
当然欢迎贡献,或者你可以下载/编辑代码并在本地运行
wfypjpf43#
@LikhithRishi,这个概念验证的llama包并不是专门为外部矢量存储设计的。
我们需要将
all_nodes
存储在docstore中(如果以后想要重建,需要保存和加载docstore)对源代码进行快速更改如下(以允许传入矢量存储并将节点存储在docstore中)
当然欢迎大家的贡献,或者你可以下载/编辑代码并在本地运行。
嗨 @logan-markewich ,
我们尝试了这个方法,但它不起作用,以下是我们正在使用的代码行:
`
storage_context = StorageContext.from_defaults(vector_store=vector_store)
store_nodes_override=True
)
`