使用本项目需自行构建时,C++ 与 Java 构建仅支持 AlmaLinux 8,Java 源码可在装有 Java 17 和 Maven 3.8+ 的平台构建;仅构建 Java 模块需先执行 ./bootstrap.sh java 再 mvn install --threads 1C;在 Mac 上运行 shell 脚本测试需额外安装 BATS 及其插件并导出 BATS_PLUGIN_PATH
部署到云服务:console.vespa-cloud.com;自建实例见 https://docs.vespa.ai/en/getting-started.htmlREADME 未说明具体显存、CPU 或 GPU 厂商型号要求,仅说明可部署到 Vespa 云服务或运行自建实例
Vespa 是开源 AI 搜索平台,在持续变化的大语料上做检索、推理与排序
面向大规模数据与机器学习的 AI 搜索平台,支持向量检索、张量计算和推荐排序,适合搭建 RAG 与搜索服务。
核心能力
- 在服务时对向量、张量、文本和结构化数据做检索与推理
- 支持机器学习模型在选中的数据上评估并聚合返回结果
- 面向多节点分布式部署,并行评估并保证高可用与性能
- 提供 Vespa APIs 供应用与平台对接
- 应用可部署到 Vespa 云服务或自建实例
容易踩的坑
- v8.781.11Vespa CLI 8.781.11最新正式版2026-11-02 · 2026-11-02 03:38 UTC
The command-line tool for Vespa.ai.
Use it on Vespa instances running locally, remotely or in the cloud. Prefer web service API's to this in production.
See Vespa documentation and getting started with Vespa CLI.
Run
maketo build and test - make sure to use go 1.18 or higher. - lsp-v2.6.2Vespa Language Server 2.6.22026-11-01 · 2026-11-01 10:10 UTC
查看更新说明
The Language-server for Vespa schemas
Use the jar file to integrate the language server into your favorite editor.
For Visual Studio Code and IntelliJ the language server should also be available in the marketplace for the editor.
Schema Language Server in Neovim
Requirements
Requires Java 17 or newer.
Optional: lspconfig plugin for nvim.
Installation
Download
schema-language-server-jar-with-dependencies.jar.Using lspconfig
The language server is registered at
lspconfigasvespa_ls. If you havelspconfiginstalled, all that needs to be done is to enable the language server.Register
.sd,.profileand.yqlas filetypes (ininit.lua):vim.filetype.add { extension = { profile = 'sd', sd = 'sd', yql = 'yql' } }Create a config for schema language server (in
init.lua):vim.lsp.config('vespa_ls', { cmd = { 'java', '-jar', '/path/to/vespa-language-server_X.X.X.jar' }, -- on_attach = ... }) vim.lsp.enable('vespa_ls')Manual Installation
If you don't want to use lspconfig you can refer to the LSP documentation for Neovim for manually registering the server.
What's New
- Adds 'abs' to the indexing language
- Adds support for explanations on schemas, fields and rank-profiles
- v8.778.45Vespa CLI 8.778.452026-10-27 · 2026-10-27 06:32 UTC
查看更新说明
The command-line tool for Vespa.ai.
Use it on Vespa instances running locally, remotely or in the cloud. Prefer web service API's to this in production.
See Vespa documentation and getting started with Vespa CLI.
Run
maketo build and test - make sure to use go 1.18 or higher. - lsp-v2.6.1Vespa Language Server 2.6.12026-10-06 · 2026-10-06 14:56 UTC
查看更新说明
The Language-server for Vespa schemas
Use the jar file to integrate the language server into your favorite editor.
For Visual Studio Code and IntelliJ the language server should also be available in the marketplace for the editor.
Schema Language Server in Neovim
Requirements
Requires Java 17 or newer.
Optional: lspconfig plugin for nvim.
Installation
Download
schema-language-server-jar-with-dependencies.jar.Using lspconfig
The language server is registered at
lspconfigasvespa_ls. If you havelspconfiginstalled, all that needs to be done is to enable the language server.Register
.sd,.profileand.yqlas filetypes (ininit.lua):vim.filetype.add { extension = { profile = 'sd', sd = 'sd', yql = 'yql' } }Create a config for schema language server (in
init.lua):vim.lsp.config('vespa_ls', { cmd = { 'java', '-jar', '/path/to/vespa-language-server_X.X.X.jar' }, -- on_attach = ... }) vim.lsp.enable('vespa_ls')Manual Installation
If you don't want to use lspconfig you can refer to the LSP documentation for Neovim for manually registering the server.
What's New
- Added support for the final fast map search syntax, 'fast-search-map-field ', on maps and arrays of struct, including float and double map values.
- Added the 'exhex8floatencode' and 'exhex16doubleencode' indexing expressions, and completion and highlighting for all 'exhex' expressions.
- Fixed indexing expression completions offering names that do not parse, and added completion and highlighting for more indexing expressions.
- Added the attribute 'quantization' block, and the 'argmax' and 'argmin' aggregators and the 'in' filter in grouping.
- Fixed a duplicated word in a diagnostic message.
- v8.763.13Vespa CLI 8.763.132026-10-05 · 2026-10-05 02:26 UTC
查看更新说明
The command-line tool for Vespa.ai.
Use it on Vespa instances running locally, remotely or in the cloud. Prefer web service API's to this in production.
See Vespa documentation and getting started with Vespa CLI.
Run
maketo build and test - make sure to use go 1.18 or higher.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Search, make inferences in and organize vectors, tensors, text and structured data, at serving time and any scale.
This repository contains all the code required to build and run all of Vespa yourself, and where you can see all development as it happens. All the content in this repository is licensed under the Apache 2.0 license.
A new release of Vespa is made from this repository's master branch every morning CET Monday through Thursday.
- Home page: https://vespa.ai
- Documentation: https://docs.vespa.ai
- Continuous build: https://factory.vespa.ai
- Run applications in the cloud for free: vespa.ai/free-trial
Table of contents
Background
Use cases such as search, recommendation and personalization need to select a subset of data in a large corpus, evaluate machine-learned models over the selected data, organize and aggregate it and return it, typically in less than 100 milliseconds, all while the data corpus is continuously changing.
This is hard to do, especially with large data sets that need to be distributed over multiple nodes and evaluated in parallel. Vespa is a platform that performs these operations for you with high availability and performance. It has been in development for many years and is used on several large internet services and apps which serve hundreds of thousands of queries from Vespa per second.
Install
Deploy your Vespa applications to the cloud service: console.vespa-cloud.com, or run your own Vespa instance: https://docs.vespa.ai/en/getting-started.html
Usage
- The application created in the getting started guides linked above is fully functional and production-ready, but you may want to add more nodes for redundancy.
- See developing applications on adding your own Java components to your Vespa application.
- Vespa APIs is useful to understand how to interface with Vespa
- Explore the sample applications
- Follow the Vespa Blog for feature updates / use cases
- Join the Vespa Slack community to ask questions and share feedback
Full documentation is at https://docs.vespa.ai.
Contribute
We welcome contributions! See CONTRIBUTING.md to learn how to contribute.
If you want to contribute to the documentation, see https://github.com/vespa-engine/documentation
Building
You do not need to build Vespa to use it, but if you want to contribute you need to be able to build the code. This section explains how to build and test Vespa. To understand where to make changes, see Code-map.md. Some suggested improvements with pointers to code are in TODO.md.
Development environment
C++ and Java building is supported on AlmaLinux 8. The Java source can also be built on any platform having Java 17 and Maven 3.8+ installed. Use the following guide to set up a complete development environment using Docker for building Vespa, running unit tests and running system tests: Vespa development on AlmaLinux 8.
Java environment for Mac
- Install JDK17, Maven Version Manager and jEnv through Homebrew.
brew install jenv mvnvm openjdk@17
- For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
- Follow "Configure your shell" in https://www.jenv.be. Configuration is shell specific. For
zshuse the below commands:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
eval "$(jenv init -)"
jenv enable-plugin export
exec $SHELL -l
- Add JDK17 to jEnv
jenv add $(/usr/libexec/java_home -v 17)
- Verify configuration with Maven by executing below command in the root of the source code. Output should refer to the JDK and Maven version specified in the .java-version and mvnvm.properties.
mvn -v
Build Java modules
export MAVEN_OPTS="-Xms128m -Xmx1024m"
./bootstrap.sh java
mvn install --threads 1C
Use this if you only need to build the Java modules, otherwise follow the complete development guide above.
When MAVEN_GLOBAL_SETTINGS is set, bootstrap.sh uses the supplied global Maven
settings while generating a wrapper. The generated Maven 3.9.16 distribution
is checked against a pinned SHA-256 independently of its download URL.
Run tests for shell scripts (on Mac)
Shell scripts are tested with BATS. To run the tests locally, install the testing framework and its plugins.
brew install node
sudo npm install -g bats bats-assert bats-support bats-mock
Export the BATS_PLUGIN_PATH environment variable to point to the global npm modules directory, which contains the BATS plugins:
export BATS_PLUGIN_PATH="$(npm root -g)"
Then run all tests with the following command (from the root of the repository):
bats -r .
To run a specific test, use:
bats test_dir/test_name.bats
Tests can also be run in IntelliJ IDEA with the BashSupport Pro
plugin. Ensure the BATS_PLUGIN_PATH environment variable is exported before launching the IDE
to avoid setting it in each run configuration.
License
Code licensed under the Apache 2.0 license. See LICENSE for terms.