插件properties_ElasticSearch 向量检索插件开发

本文档详细介绍了如何开发一个基于ElasticSearch 6.7.0的向量检索插件,包括pom.xml配置、plugin.xml、plugin-descriptor.properties的创建,以及代码实现和性能测试。通过Python将数据以base64形式存储,并利用欧式距离计算特征向量的相似性。测试显示,在100w条数据、160维特征向量的情况下,平均响应时间为0.348s。
摘要由CSDN通过智能技术生成

0X00、前言

Elasticsearch是一个基于Lucene库的搜索引擎,它提供了一个分布式、支持多租户的全文搜索引擎。随着业务的飞速发展,对于搜索的需求也会增加,比如:搜索图片、相似向量等。我们可以利用 ElasticSearch 良好的插件规范、丰富的查询函数、分布式可扩展的能力开发一个脚本插件使其支持向量检索。本教程主要参考StaySense的开源项目(见参考1)。

本教程演示环境配置:

  • Python: 3.6.4
  • Java: 1.8
  • Maven
  • Docker&Elaseticsearch: 6.7.0

通过Docker部署Elasticsearch:6.7.0参考:Elasticsearch安装使用

0X01、插件开发

项目地址:https://github.com/liheyou/ImageSimilarityPlugin

项目整体目录:

6ebee75972f95f1551b27fed17243fb8.png

1、pom.xml

主要配置一些项目环境、添加依赖、打包方式等,完整配置查看项目文件。

2、plugin.xml

由于 Elasticsearch 要求自定义插件需要打包成 zip 文件,我们可以配置 Maven Assembly 插件使其自动生成,完整配置查看项目文件。

3、plugin-descriptor.properties

根据 Elasticsearch 要求,所有的插件必须包含一个名为 plugin-descriptor.properties 的插件描述文件,对其内容有要求且必须放置在 elasticsearch 目录下。我们在 src/main/resources 目录下创建 plugin-descriptor.properties 并添加内容如下:

name=${elasticsearch.plugin.name}
description=${elasticsearch.plugin.description}
version=${project.version}
classname=${elasticsearch.plugin.classname}
java.version=${maven.compiler.target}
elasticsearch.version=${elasticsearch.version
# extended.plugins=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值