分布式高维空间近邻搜索项目开发

项目名称

分布式高维空间近邻搜索

项目描写叙述

眼下在互联网上高维空间搜索的算法很是多,但性能都不尽人意。比方KD树算法,强调互联网,是指本人能在互联网上搜索到的相关算法,假设某个公司内部有本身研究的算法也可能有不错的性能表现。

測试KD树的性能,50维度的数据,100万的数据用了600多毫秒,而且搜索结果与线性搜索的结果相差还很是大。鉴于此,我本身研究了一个搜索算法。64维度,100万的数据量,搜索前十个近期邻点,大概在200毫秒左右(PS:经过修正bug,算法在此环境中达到了20ms之内搜索速度),而且结果与线性搜索偏差不大。java

搜索算法特色

1.对于邻近点越近的搜索就越快点
2.对于算法是基于内存的。理论上单机的搜索能力可以达到上亿(内存限制大小)
3.算法是增量的,对于新增的数据可以在必定时间内被搜索到(新增数据这个功能尚未实现,理论上很是easy实现的)
4.搜索过程是可以增量搜索的,也就是说假设一个点在业务中之中假设在第一搜索不到合适结果,可以第一次搜索的基础上扩大搜索范围,从而不会消耗过多的性能算法

项目架构

项目架构图

这里写图片描写叙述

这个架构有点类似于solr的架构,不论什么应用程序都可以内嵌一个搜索client以提交搜索请求,提交搜索请求需要载入一些元信息。这些信息不会很是大,依据元信息进行http分发搜索请求,并依据搜索结果进行合并微信

合做开发内容markdown

需要开发的分为三大部分:
1.第一部分是底层通信部分
2.第二部分是算法的无缺
3.第三部分是算法与框架的结合架构

项目开发语言:框架

JAVA,C++分布式

技能要求post

1.至少一年的java开发经验,最好也懂得写页面
2.对netty熟悉
3.了解HA原理性能

搜索演示:netty

搜索平台訪问地址:http://moxuqiang.6655.la
搜索方式:在文本框内输入50维的记录并点击搜索。一次仅仅能搜一条记录;
获得对应的搜索结果例如如下:
这里写图片描写叙述

搜索结果里展示了前十个搜索点与邻近点的距离以及邻近点记录信息,及搜索耗时
由于比較匆忙,对输入没有进行全面的检查,因此请依照教程严格输入搜索记录
搜索数据集下载地址:http://pan.baidu.com/s/1kUj2gar

联系方式

有意合做者可经过下面方式联系 QQ:578038303 微信可经过QQ号搜索

相关文章
相关标签/搜索