实例介绍
Vektonn:高性能向量搜索引擎
Vektonn是一款为数据科学应用设计的高性能战-tested kNN向量搜索引擎。它帮助你管理向量的生命周期,并大幅缩短产品上市时间。
特点:
- 支持密集和稀疏向量
- 提供精确和近似kNN(AkNN)算法
- 可扩展架构,轻松处理数百GB的向量数据
- API提供搜索和上传向量数据的方法,它将请求代理到相应的索引和数据源。
- 数据源是持久存储所有向量数据的地方,目前使用Apache Kafka实现。
- 索引是数据源中数据的内存快照,它从相应的数据源异步更新。
【实例截图】
【核心代码】
文件清单
└── vektonn-387c118f6b53c3718b608ee779796fa5a2a5fa86
├── docker-compose-up.sh
├── docker-compose.yaml
├── docs
│ ├── assets
│ │ ├── vektonn-components.svg
│ │ ├── vektonn-star-rounded-transparent.png
│ │ ├── vektonn-star-rounded-transparent.svg
│ │ ├── vektonn-star-rounded-white.png
│ │ ├── vektonn-star-rounded-white.svg
│ │ ├── vektonn-star-white.png
│ │ └── vektonn-star-white.svg
│ ├── features.md
│ ├── index.md
│ ├── overrides
│ │ └── partials
│ │ └── source.html
│ ├── quick-start.md
│ ├── reference
│ │ ├── api.md
│ │ ├── specification.md
│ │ └── supported-algorithms.md
│ └── swagger
│ ├── dist
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── oauth2-redirect.html
│ │ ├── swagger-ui-bundle.js
│ │ ├── swagger-ui-bundle.js.map
│ │ ├── swagger-ui.css
│ │ ├── swagger-ui.css.map
│ │ ├── swagger-ui-es-bundle-core.js
│ │ ├── swagger-ui-es-bundle-core.js.map
│ │ ├── swagger-ui-es-bundle.js
│ │ ├── swagger-ui-es-bundle.js.map
│ │ ├── swagger-ui.js
│ │ ├── swagger-ui.js.map
│ │ ├── swagger-ui-standalone-preset.js
│ │ └── swagger-ui-standalone-preset.js.map
│ ├── index.html
│ ├── swagger.json
│ └── update-swagger-json.sh
├── LICENSE
├── mkdocs.yml
├── README.md
├── scripts
│ └── update-kafka-run-script-for-kraft.sh
├── src
│ ├── CodeStyle.DotSettings
│ ├── Directory.Build.props
│ ├── Dockerfile
│ ├── global.json
│ ├── nuget.config
│ ├── Vektonn.ApiClient
│ │ ├── HttpClusterClient
│ │ │ ├── AbsoluteUriClusterClient.cs
│ │ │ ├── AbsoluteUriRequestUrlBuilder.cs
│ │ │ ├── ClusterClientExtensions.cs
│ │ │ ├── IRequestUrlBuilder.cs
│ │ │ ├── RelativeUriRequestUrlBuilder.cs
│ │ │ └── VektonnClusterClientException.cs
│ │ ├── IndexShard
│ │ │ ├── IndexShardApiAbsoluteUriClusterClient.cs
│ │ │ └── IndexShardApiClient.cs
│ │ ├── VektonnApiClient.cs
│ │ ├── Vektonn.ApiClient.csproj
│ │ └── VektonnApiClusterClient.cs
│ ├── Vektonn.ApiContracts
│ │ ├── AttributeDto.cs
│ │ ├── AttributeValueDto.cs
│ │ ├── DenseVectorDto.cs
│ │ ├── ErrorDto.cs
│ │ ├── FoundDataPointDto.cs
│ │ ├── IndexInfoDto.cs
│ │ ├── InputDataPointDto.cs
│ │ ├── Json
│ │ │ ├── HttpJson.cs
│ │ │ └── VectorDtoJsonConverter.cs
│ │ ├── SearchQueryDto.cs
│ │ ├── SearchResultDto.cs
│ │ ├── SparseVectorDto.cs
│ │ ├── VectorDto.cs
│ │ └── Vektonn.ApiContracts.csproj
│ ├── Vektonn.ApiService
│ │ ├── ApiServiceApplication.cs
│ │ ├── ApiServiceEntryPoint.cs
│ │ ├── Controllers
│ │ │ ├── SearchApiController.cs
│ │ │ └── UploadApiController.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Services
│ │ │ └── IndexShardApiClientProvider.cs
│ │ └── Vektonn.ApiService.csproj
│ ├── Vektonn.DataSource
│ │ ├── IDataSourceConsumer.cs
│ │ ├── IDataSourceProducer.cs
│ │ ├── Kafka
│ │ │ ├── KafkaConsumerConfig.cs
│ │ │ ├── KafkaConsumer.cs
│ │ │ ├── KafkaDataSourceConsumer.cs
│ │ │ ├── KafkaDataSourceProducer.cs
│ │ │ ├── KafkaProducerConfig.cs
│ │ │ ├── KafkaProducer.cs
│ │ │ ├── KafkaProducerException.cs
│ │ │ ├── KafkaTopicCreationConfig.cs
│ │ │ ├── KafkaTopicCreator.cs
│ │ │ ├── KafkaTopicNameFormatter.cs
│ │ │ └── KafkaTopicPartitionOffsets.cs
│ │ └── Vektonn.DataSource.csproj
│ ├── Vektonn.Hosting
│ │ ├── Configuration
│ │ │ └── KafkaConfigurationProvider.cs
│ │ ├── Constants.cs
│ │ ├── EnvironmentVariables.cs
│ │ ├── FileSystemHelpers.cs
│ │ ├── IShutdownTokenProvider.cs
│ │ ├── IVektonnApplication.cs
│ │ ├── IVektonnApplicationHost.cs
│ │ ├── LoggingConfigurator.cs
│ │ ├── ShutdownTokenProvider.cs
│ │ ├── VektonnApplicationBase.cs
│ │ ├── VektonnApplicationHost.cs
│ │ ├── VektonnApplicationHostSettings.cs
│ │ └── Vektonn.Hosting.csproj
│ ├── Vektonn.IndexShard
│ │ ├── AttributesAccessor.cs
│ │ ├── ByteArrayComparer.cs
│ │ ├── IIndexShard.cs
│ │ ├── IIndexShardUpdater.cs
│ │ ├── IndexDataPointSerializer.cs
│ │ ├── IndexShardHolder.cs
│ │ ├── IndexWithLocker.cs
│ │ ├── ISearchQueryExecutor.cs
│ │ ├── SplitIndexShard.cs
│ │ ├── Vektonn.IndexShard.csproj
│ │ └── WholeIndexShard.cs
│ ├── Vektonn.IndexShardService
│ │ ├── Controllers
│ │ │ └── IndexShardApiController.cs
│ │ ├── IndexShardServiceApplication.cs
│ │ ├── IndexShardServiceEntryPoint.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Services
│ │ │ ├── IIndexShardAccessor.cs
│ │ │ ├── IIndexShardOwner.cs
│ │ │ ├── IndexShardConfiguration.cs
│ │ │ ├── IndexShardConfigurationProvider.cs
│ │ │ ├── IndexShardHostedService.cs
│ │ │ └── IndexShardOwner.cs
│ │ └── Vektonn.IndexShardService.csproj
│ ├── Vektonn.SharedImpl
│ │ ├── ApiContracts
│ │ │ ├── AttributeValueConversions.cs
│ │ │ ├── Validation
│ │ │ │ ├── AttributeValidator.cs
│ │ │ │ ├── AttributeValueShardingValidator.cs
│ │ │ │ ├── DenseVectorValidator.cs
│ │ │ │ ├── InputDataPointValidator.cs
│ │ │ │ ├── SearchQueryValidator.cs
│ │ │ │ ├── SparseVectorValidator.cs
│ │ │ │ └── SplitFilterValidator.cs
│ │ │ └── VectorConversions.cs
│ │ ├── BinarySerialization
│ │ │ ├── AttributeValueSerializer.cs
│ │ │ └── InputDataPointSerializer.cs
│ │ ├── Configuration
│ │ │ ├── IIndexMetaProvider.cs
│ │ │ ├── IIndexShardsTopologyProvider.cs
│ │ │ ├── IndexMetaProvider.cs
│ │ │ └── IndexMetaYamlParser.cs
│ │ ├── Contracts
│ │ │ ├── AttributeValue.cs
│ │ │ ├── AttributeValueTypeCode.cs
│ │ │ ├── DataPoint.cs
│ │ │ ├── DataPointOrTombstone.cs
│ │ │ ├── DataSourceId.cs
│ │ │ ├── DataSourceMeta.cs
│ │ │ ├── FoundDataPoint.cs
│ │ │ ├── IndexAlgorithm.cs
│ │ │ ├── IndexId.cs
│ │ │ ├── IndexMeta.cs
│ │ │ ├── InputDataPoint.cs
│ │ │ ├── InputDataPointOrTombstone.cs
│ │ │ ├── SearchQuery.cs
│ │ │ ├── SearchResultItem.cs
│ │ │ ├── Sharding
│ │ │ │ ├── AttributeValueHasher.cs
│ │ │ │ ├── DataSource
│ │ │ │ │ ├── DataSourceShardingMeta.cs
│ │ │ │ │ ├── HashBasedDataSourceAttributeValueSharder.cs
│ │ │ │ │ ├── IDataSourceAttributeValueSharder.cs
│ │ │ │ │ └── ValueBasedDataSourceAttributeValueSharder.cs
│ │ │ │ ├── IAttributeValueHasher.cs
│ │ │ │ ├── IAttributeValueProjector.cs
│ │ │ │ ├── IdentityAttributeValueProjector.cs
│ │ │ │ ├── Index
│ │ │ │ │ ├── DataSourceShardSubscription.cs
│ │ │ │ │ ├── IIndexAttributeValueShard.cs
│ │ │ │ │ ├── IndexAttributeValueShard.cs
│ │ │ │ │ ├── IndexShardingRule.cs
│ │ │ │ │ ├── IndexShardMeta.cs
│ │ │ │ │ └── IndexShardsMapMeta.cs
│ │ │ │ └── ShardAttributeValueProjector.cs
│ │ │ └── Tombstone.cs
│ │ ├── Json
│ │ │ └── DebugJson.cs
│ │ ├── SearchResultsMerging
│ │ │ ├── ByPropertyComparer.cs
│ │ │ └── FoundDataPointsMerger.cs
│ │ └── Vektonn.SharedImpl.csproj
│ ├── Vektonn.sln
│ ├── Vektonn.sln.DotSettings
│ ├── Vektonn.Tests
│ │ ├── ApiClient
│ │ │ ├── IndexShardApiTests.cs
│ │ │ └── VektonnApiTests.cs
│ │ ├── ApiContracts
│ │ │ └── HttpJsonTests.cs
│ │ ├── AttributeValueTestHelpers.cs
│ │ ├── DataSource
│ │ │ └── KafkaTopicPartitionOffsetsTests.cs
│ │ ├── IndexShard
│ │ │ ├── AttributesAccessorTests.cs
│ │ │ ├── ByteArrayComparerTests.cs
│ │ │ ├── IndexDataPointSerializerTests.cs
│ │ │ ├── IndexShardHolderTests.cs
│ │ │ └── SplitIndexShardTests.cs
│ │ ├── RandomHelpers.cs
│ │ ├── SharedImpl
│ │ │ ├── ApiContracts
│ │ │ │ ├── AttributeDtoTestHelpers.cs
│ │ │ │ ├── AttributeValidatorTests.cs
│ │ │ │ ├── AttributeValueShardingValidatorTests.cs
│ │ │ │ ├── DenseVectorValidatorTests.cs
│ │ │ │ ├── InputDataPointValidatorTests.cs
│ │ │ │ ├── SearchQueryValidatorTests.cs
│ │ │ │ ├── SparseVectorValidatorTests.cs
│ │ │ │ ├── SplitFilterValidatorTests.cs
│ │ │ │ └── VectorDtoTestHelpers.cs
│ │ │ ├── BinarySerialization
│ │ │ │ ├── AttributeValueSerializerTests.cs
│ │ │ │ └── InputDataPointSerializerTests.cs
│ │ │ ├── Configuration
│ │ │ │ ├── IndexMetaProviderTests.cs
│ │ │ │ └── IndexMetaYamlParserTests.cs
│ │ │ ├── SearchResultsMerging
│ │ │ │ ├── ByPropertyComparerTests.cs
│ │ │ │ └── FoundDataPointsMergerTests.cs
│ │ │ └── Sharding
│ │ │ ├── AttributeValueHasherTests.cs
│ │ │ ├── DataSourceShardingMetaTests.cs
│ │ │ ├── IndexAttributeValueShardTests.cs
│ │ │ ├── IndexShardMetaTests.cs
│ │ │ ├── IndexShardsMapMetaTests.cs
│ │ │ └── ShardAttributeValueProjectorTests.cs
│ │ └── Vektonn.Tests.csproj
│ └── version.json
└── tests
└── config
├── data-sources
│ ├── QuickStart.Source
│ │ └── 1.0.yaml
│ └── Samples.SparseVectors
│ └── 0.1.yaml
├── index-shards-topology.yaml
└── indices
├── QuickStart.Index
│ └── 1.0.yaml
└── Samples.SparseVectors
└── 0.1.yaml
58 directories, 214 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论