Vespa Search and Inference Platform
repository·master·Indexed 11 days ago
https://github.com/vespa-engine/vespaA high-performance platform for searching, making inferences, and organizing large-scale data, including vectors, tensors, text, and structured data. The ecosystem includes the Vespa CLI for application management, pyvespa for Python integration, a Query Builder, a Trace Visualizer, and various Maven plugins for ABI stability, OSGi bundle creation, and configuration class generation.
What's inside Vespa
- The Predicate search library is a Java-based library designed for indexing predicates and performing queries against them using boolean constraints. It allows developers to manage and search through complex logical conditions.
Overview of vespa-feed-client
masterThevespa-feed-clientis a Java client library designed for feeding data into Vespa. It utilizes HTTP/2 to communicate with the Vespa document API at the/document/v1/endpoint.Overview of Container disc module
masterThe
container-discmodule provides the core infrastructure for the JDisc container and its integration layer withjdisc_core. It is designed to manage the lifecycle and execution environment of Vespa components through a configuration-driven architecture.Key capabilities include:
- Core Infrastructure: Handles dependency injection, component management, and the chain pattern.
- Request Handling: Provides a processing framework for managing request-response cycles.
- Networking: Includes a Jetty-based HTTP/HTTPS server with support for HTTP/2.
- API & Management: Features a REST API framework and OSGi bundle management.
- Observability: Includes built-in metrics and monitoring infrastructure.
Overview of the Component library
masterThe Component library is a specialized library designed for managing components that require explicit lifecycle management and versioning. It provides the underlying framework for handling how components are initialized, transitioned through different states, and versioned within the Vespa ecosystem.Overview of Vespa Java command line utilities
masterThevespaclient-javapackage provides a suite of Java-based command line utilities for interacting with a Vespa cluster. These tools allow for data feeding, querying, visiting nodes, managing destinations, and retrieving statistics.Overview of the config-lib library
masterThe
config-libis the base library used for generated cloud configuration classes in Vespa. It serves as the foundation for configuration objects that are used across different versions of the Vespa config server.Important Compatibility Note: Because a multi-version config server environment may contain only one version of this library, any changes made to its API or the serialized data format must maintain strict backwards compatibility to ensure stability across the ecosystem.
Overview of the Vespa Config Library
masterThe Vespa configuration system provides libraries for configuration subscription and the configuration protocol. It allows components to subscribe to configuration changes and interact with the Vespa configuration service. The system is supported via libraries in both C++ and Java.Overview of Logstash Plugins for Vespa
masterVespa provides Logstash plugins to facilitate data movement between Logstash and Vespa. There are two types of plugins available:
- Input Plugins: Used to read data from Vespa into Logstash.
- Output Plugins: Used to write data from Logstash into Vespa (e.g., via the Vespa feed API).
For specific installation instructions, configuration options, and usage details, refer to the
README.mdfile located within the specific plugin directory.Verify and inspect Vespa configuration with configutil utilities
masterVespa provides specific command-line utilities to verify the validity of your configuration and inspect the resulting model. The two primary tools are:
vespa-config-status: Used for verifying configuration status.vespa-model-inspect: Used for inspecting the Vespa model.
These utilities are part of the
configutiltoolset designed to help developers ensure their configuration is correct before or during deployment.Use API classes for boolean/predicate search
masterThepredicate-search-coremodule provides Java classes for parsing and representing boolean predicates. It also includes predicate processors designed to simplify and optimize boolean expressions within the Vespa engine.Use Documentapi for building container bundles
masterTheDocumentapiartifact is a dependency used specifically for building Vespa container bundles. If your goal is to build standalone document clients, you should use thedocumentapiartifact instead of this one.Use the Vespa application Maven plugin to deploy application packages
masterThe Vespa application plugin is a Maven plugin designed to automate the deployment of Vespa application packages. It allows developers to integrate Vespa application lifecycle management directly into their Maven build process.