初始化Haystack的ElasticsearchDocumentStore报embedding映射错误
问题根因
报错核心是本地部署的Elasticsearch版本与当前安装的Haystack版本不兼容:
- 你本地运行的Elasticsearch版本低于7.6,该版本的
dense_vector字段类型不支持dims参数配置向量维度 - 新版Haystack初始化索引时,会默认给
embedding字段创建带dims:768属性的稠密向量映射,低版本ES无法识别该参数,直接抛出映射解析异常。
解决方法
三选一即可:
- 升级Elasticsearch到7.6~7.17之间的7.x稳定版本(不建议用8.x版本,多数Haystack稳定版本对ES8适配不全),升级完成后重启ES服务,重新运行原有初始化代码就能正常创建索引。
- 若不想升级ES,直接降级Haystack到适配低版本ES的旧版本即可,对应安装命令:
pip install farm-haystack==0.13.0
- 如果当前阶段不需要使用语义向量检索功能,初始化DocumentStore时关闭默认embedding字段的自动创建,修改后的初始化代码如下:
from haystack.document_stores import ElasticsearchDocumentStore doc_store= ElasticsearchDocumentStore( host='localhost', username='', password='', index='document', embedding_field=None )
注意:选择该方案的话,后续如果要启用向量检索能力,需要手动创建匹配当前ES版本规则的embedding字段映射。
内容的提问来源于stack exchange,提问作者Siwansh Nepal
相关产品推荐
相关产品推荐

