ElasticSearch 图片搜索插件 (一)
一, 关于ElasticSearch
ElasticSearch 是基于 Lucene 的分布式搜索引擎。 虽然Lucene 从 版本6 开始内部使用了bkd树使得多维搜索问题得到显著优化,但是 ElasticSearch 实际只在 numeric range 问题上使用了bkd树。
二,官方的图片搜索插件
官方网页地址: https://www.elastic.co/blog/found-getting-started-with-lire-and-elasticsearch
该项目年久失修,正式发行版本只支持到ElasticSearch 1.0.1 ,readme也不能正常使用,而官方网页上介绍的上传图片是编程实现的,不利于尝试。所以下面介绍的使用步骤也是我一点点摸索出来的。
1,下载 ElasticSearch 1.0.1, 解压,cd到目录,执行 ./bin/plugin -install com.github.kzwang/elasticsearch-image/1.2.0安装插件。
2,执行./bin/elasticsearch启动服务器。
3,创建节点——打开cmd窗口,执行命令:
curl -XPOST 'https://localhost:9200/images' -d '{ "settings" : { "number_of_shards" : 3 }, "mappings" :{ "image": { "properties": { "name": { "type": "string" }, "image": { "type": "image", "feature": { "CEDD": { "hash": "BIT_SAMPLING" }, "JCD": { "hash": ["BIT_SAMPLING", "LSH"] }, "FCTH": {} } } } }}}'
4,上传图片——执行命令:
curl -XPOST 'https://localhost:9200/images/image' -d '{ "name":"<图片名字>", "image":"<图片的base64编码>"}'
其中<图片名字>替换成图片的名字。
其中<图片的base64编码>替换成某张图片的base64编码,网上有很多在线工具可以用,比如“http://base64image.org/”。
可以多上传几张图片来测试搜索效果。
5,搜索——执行命令:
curl -XPOST 'https://localhost:9200/images/_search' -d '{"fields":["name"],"query":{"image":{"image":{"feature":"CEDD","image":"<要搜的图片的base64编码>","hash":"BIT_SAMPLING","limit":10}}}}'
其中<要搜的图片的base64编码>替换成要搜索的那张图片的base64编码。
以上3/4/5步也可以不使用curl,借助于ElasticSearch的另一个核心插件head中的复合查询界面与服务器通讯。head的安装命令是
./bin/elasticsearch-plugin install mobz/elasticsearch-head
上面几步执行完就可以看到搜索结果类似这张截图:
三,官方的图片搜索插件只支持到1.0.1,而ElasticSearch 版本目前已经到了6。网上已经有几个支持ElasticSeach 5 以上版本的图片搜索插件项目,比如这个基于tensorflow的https://github.com/tuan3w/visual_search。ES 版本5和6也有一些区别,ES 6中 script 需要继承的类是 SearchScript。
四,使用 es 做相似图片搜索在速度上并不理想,总是要将所有文档做一个评分才能得出最相似的那个。
ElasticSearch 图片搜索插件 (一)相关推荐
- 帝国CMS7.5基于es(Elasticsearch)7.x的全文搜索插件
帝国CMS7.5基于es(Elasticsearch)7.x的全文搜索插件 - GXECMS博客 一.插件演示地址 后台演示地址:https://ecms.gxecms.cf/e/admin/inde ...
- 基于百度图片搜索的vscode插件——超级鼓励师
简介 超级鼓励师是一款vscode插件,基于百度图片搜索服务,根据用户设置的关键字获取图片.并通过webview展示给用户.缓解程序猿/媛工作压力,给予你爱的鼓励. vscode 插件市场搜索超级鼓励 ...
- ElasticSearch分布式搜索框架
目录 一. ElasticSearch背景 1.1 Elasticsearch介绍 1.2 Elasticsearch现状 1.3 Es最佳实践 二. 环境配置安装 2.1 Elasticsearch ...
- elasticsearch分布式搜索配置文件详解
2019独角兽企业重金招聘Python工程师标准>>> Elasticsearch是一个开源的分布式实时搜索与分析引擎,支持云服务.它是基于Apache Lucene搜索引擎的类库创 ...
- Elasticsearch的Shield插件
2019独角兽企业重金招聘Python工程师标准>>> Shield是Elastic公司推出的商业权限管理插件,它可以保护Elasticsearch中的数据,采用加密的通讯密码,基于 ...
- wordpress图片水印插件DX-Watermark
DX-Watermark是一款功能齐全的wordpress图片水印插件,可以自动给上传的图片添加文本或者图片水印. 后台截图: 文本水印: 图片水印: 选项说明: 类型:可选择文本或图片水印两种类型, ...
- 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )
文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...
- 10个相似图片搜索以图找图的网站
有没有遇到过:看到一张图片,想找到它的原始图片,或者是凭着一张小的缩略图找出原始大图?不管你有没有遇到过,反正我是遇到了.不过现在不担心了,因为下面的十款搜索引擎可以帮你实现,以图找图,以图搜图,以图 ...
- Elasticsearch及相关插件的安装
Elasticsearch及相关插件的安装 1.安装Elasticsearch并启动服务 2.安装第三方插件 2.1.Head插件 是Elasticsearch的一个集群管理工具,可以通过它来查看和搜 ...
- 懒加载、瀑布流和LightBox实现图片搜索效果
开始 做一个小项目,算是对js和jQuery的一次练习吧. 图片资源来自这个网站(上面有很多高清图片关键还是免费下载的): https://unsplash.com/ 项目具体效果可以点这里: htt ...
最新文章
- 公布.NET 框架库源代码(转)
- 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | 文件头 Header 分析 | 标签 Tag 分析 | 视频标签 Tag 数据分析 )
- 关于jQuery中.attr()和.prop()
- (整理)用户空间_内核空间以及内存映射
- 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)
- ubuntu上的wordpress安装
- windows核心编程学习笔记(八)结构化异常处理(Structured Exception Handling)
- tor the onion router下载_盒马生鲜超市购物app下载,打开盒马鲜生小程序!
- git报错error: src refspec refs/heads/master does not match any.
- jQuery温习篇---强大的JQuery选择器
- 基于GPON的光纤光栅通信网与传感网融合技术研究
- JDK动态代理简单实现
- java web使用的主流框架介绍
- 开学季,如何申请免费学生云服务器
- 计算机重启快捷键是什么,重启计算机的快捷键是什么?
- linux忘记root密码,单用户模式修改密码
- win7 台式电脑怎么调节屏幕亮度
- 车载网络基础——预备篇
- Word的扩展名是什么
- excel快速批量制作工资条
热门文章
- 语音翻译软件程序语言c,语音翻译app排行十大最好用的语音识别翻译软件
- 解决 Intel Extreme Tuning Utility(XtuService)的日志占用过大(直接删Logs或卸载)
- matlab欠采样,科学网—傅立叶欠采样算子的Matlab代码 - 屈小波的博文
- 基于肤色和眼睛定位的人脸检测算法——MATLAB实现
- java面试①整体流程
- AUTOCAD——超级填充命令3
- php pdo连接oracle乱码,PHP编程:php pdo oracle中文乱码的快速解决方法
- matlab模拟掷骰子,利用几何画板模拟掷骰子实验
- vs2015离线安装QT的vsix工具
- 12个月份的RGB配色