当前位置: 首页 > 软件库 > 程序开发 > 搜索引擎 >

Vald

分布式矢量搜索引擎
授权协议 Apache-2.0
开发语言 Google Go
所属分类 程序开发、 搜索引擎
软件类型 开源软件
地区 不详
投 递 者 庄博厚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Vald 是一个高度可扩展的分布式快速近似近邻密集矢量搜索引擎。

Vald 是基于 Cloud-Native 架构设计和实现的。它使用最快的 ANN 算法 NGT 来搜索 neighbors。Vald 具有自动矢量索引和索引备份,以及从数十亿特征矢量数据中进行搜索的水平缩放。Vald 易于使用、功能丰富且可根据您的需要高度定制。

主要特点

  • 异步自动索引

    • 通常图形在索引期间需要锁定,这会导致停止世界。但是 Vald 使用分布式索引图,因此它在索引期间继续工作。
  • 可定制的入口/出口过滤

    • Vald 实现了它自己的高度可定制的入口/出口过滤器。
    • 可以配置为适合 gRPC 接口。
      • 入口过滤器:能够根据要求通过过滤器进行矢量化。
      • 出口过滤器:使用您自己的算法重新排列或过滤搜索结果。
  • 基于云原生的矢量搜索引擎

    • 可根据您的需求在内存和 CPU 上进行横向扩展。
  • 索引数据自动备份

    • Vald 具有使用 MySQL 或 Cassandra 存储索引数据备份的功能,可实现灾难恢复。
  • 分布式索引

    • Vald 将向量索引分发给多个代理,每个代理存储不同的索引。
  • 索引复制

    • Vald 将每个索引存储在启用索引副本的多个代理中。
    • 当某些 Vald 代理出现故障时自动重新平衡副本。
  • 使用方便

    • Vald 可以通过几个步骤轻松安装。
  • 高度可定制

    • 您可以配置向量维数、副本数等。
  • 支持多语言

    • 支持 Go、Java、Clojure、Node.js 和 Python 客户端库。
    • gRPC API 可以由任何支持 gRPC 的编程语言触发。
    • 还支持 REST API。

要求

  • Kubernetes 1.17~
  • AVX2 指令(Vald Agent NGT 需要)
  • Description: Vlad likes to eat in cafes very much. During his life, he has visited cafes n times. Unfortunately, Vlad started to feel that his last visits are not any different from each other. To fix

  • 子类在析构时会先析构父类,如果父类中有成员如:int *A;并且在构造函数中用new分配空间,如(A = new[10];),这时在子类和父类的析构函数中最好先判断A是否为NULL,如果不为NULL,先delete,后将A置为NULL(如下面代码所示)。 如果不将A置为NULL,则就会报如标题所示的错误,原因是子类析构函数会先调用父类析构函数释放了A的空间,但此时A的值并不为NULL,当子类自己在

 相关资料
  • 在Web一章中,我们提到MySQL很脆弱。数据库系统本身要保证实时和强一致性,所以其功能设计上都是为了满足这种一致性需求。比如write ahead log的设计,基于B+树实现的索引和数据组织,以及基于MVCC实现的事务等等。 关系型数据库一般被用于实现OLTP系统,所谓OLTP,援引wikipedia: 在线交易处理(OLTP, Online transaction processing)是指

  • 为提高可伸缩性,Sphnix提供了分布式检索能力。分布式检索可以改善查询延迟问题(即缩短查询时间)和提高多服务器、多CPU或多核环境下的吞吐率(即每秒可以完成的查询数)。这对于大量数据(即十亿级的记录数和TB级的文本量)上的搜索应用来说是很关键的。 其关键思想是对数据进行水平分区(HP,Horizontally partition),然后并行处理。 分区不能自动完成,您需要 在不同服务器上设置Sp

  • 搜索引擎分为两部分: 时间筛选 和 搜索引擎 (详情) 1.时间筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,并且能自定义选择时间段来得出想要的结果报表 2.搜索引擎 (时间段详情) 选择日期,查看来自对应时间段内,各个搜索引擎的访问量比例

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 我们已经使用Drools引擎几年了,但是我们的数据已经增长了,我们需要找到一个新的分布式解决方案来处理大量数据。我们有复杂的规则,可以查看几天的数据,这就是为什么Drools非常适合我们,因为我们的内存中只有数据。 你对类似于流口水但分布式/可扩展的东西有什么建议吗? 我确实对这件事进行了研究,但我找不到任何符合我们要求的东西。 谢谢

  • 在前面的章节里,我们已经学习了如何使用不同的打分公式,也了解了使用这些打分公式的好处。我们也学习了何如使用不同的倒排表结构来改变索引数据的方式。此外,我们也学习了自如应用近实时搜索和数据实时获取(real-time GET),了解了检索器(searcher)重启(reopen)背后的意义。我们也探讨了多语言数据的处理,也学习了配置事务日志来实现业务需求。最后,我们学习段合并(segments me