Mac环境Elasticsearch KNN插件安装失败及索引报错求助
在Mac上搭建Elasticsearch 8.6.1 KNN环境(Elastiknn)
1. 修复插件安装失败问题
你执行的安装命令中file://路径格式错误,导致系统无法识别本地文件,可通过以下两种方式正确安装:
方式一:使用完整file协议路径
假设插件包elastiknn-8.6.1.0.zip保存在~/Downloads目录,执行:
sudo bin/elasticsearch-plugin install file:///Users/你的用户名/Downloads/elastiknn-8.6.1.0.zip
注意:file://后需加三个斜杠,前两个为协议标识,第三个对应本地根目录起始。
方式二:直接指定本地文件路径
无需file://前缀,直接输入插件包的完整本地路径:
sudo bin/elasticsearch-plugin install /Users/你的用户名/Downloads/elastiknn-8.6.1.0.zip
执行命令后输入y确认安装即可。
2. 重启Elasticsearch服务
插件安装完成后必须重启服务才能生效:
# brew安装的Elasticsearch brew services restart elasticsearch # 手动下载的Elasticsearch(进入安装目录执行) sudo bin/elasticsearch
3. 验证插件安装状态
执行以下命令查看已安装插件:
bin/elasticsearch-plugin list
输出包含elastiknn即表示安装成功。
4. 修正索引创建代码
你原代码中index.knn.space_type的配置位置错误,Elastiknn的空间类型需配置在字段映射内,同时dimension应为数字类型,修正后的代码如下:
from elasticsearch import Elasticsearch from elasticsearch.helpers import bulk es = Elasticsearch('http://127.0.0.1:9200', verify_certs=False) settings={ "settings":{ "index": { "knn": "true" } }, "mappings":{ "dynamic": "true", "_source":{ "enabled":"true" }, "properties":{ "vector": { "type": "knn_vector", "dimension": 768, "elastiknn": { "space_type": "cosinesimil" } } } } } es.indices.create(index = 'document_embeddings', ignore=[400,404], body = settings)
5. 验证环境可用性
运行修正后的代码,若无报错则KNN环境搭建完成。也可通过以下命令查看索引配置确认:
curl -XGET 'http://127.0.0.1:9200/document_embeddings/_settings?pretty'
内容的提问来源于stack exchange,提问作者Asim
相关产品推荐
相关产品推荐

