Welcome to Vespa! Following is a list of resources for first time users - Vespa can do many things, and be deployed in many ways. Let us know if something is missing.
|Minimal Quick Start||Install Vespa, insert a few documents and run a query, using Docker or Vagrant: Vespa Cloud users, see Getting Started.|
|Monitoring Quick Start||
Try the Monitoring Quick Start -
it builds on the Minimal Quick Start,
and adds more features that most applications normally use:
Vespa supports writing plugins in languages that runs in the JVM. Use this to simplify Query and Document processing:
Vespa is an open source platform and can be deployed in multiple ways - explore:
Also try deploying to Vespa Cloud, a managed service running Vespa.
This is under active development, check back for more pointers later:
Tutorials and use cases
Run the tutorials to learn how Vespa can be used in search and recommender applications:e-commerce shopping use case.
- Follow the Vespa Blog for product updates and use cases
- Vespa APIs is useful to understand how to interface with Vespa
- Vespa's sample applications are found in sample-apps. Some of the guides above use these - find more info in the README files.
- How to secure a Vespa installation
- Developers: Build, Contribute
Also see the FAQ.
Most problems with the quick start guides are due to Docker out of memory.
Make sure at least 6G memory is allocated to Docker:
$ docker info | grep "Total Memory"OOM symptoms include
INFO: Problem with Handshake localhost:8080 ssl=false: localhost:8080 failed to respondThe container is named vespa in the guides, for a shell do:
$ docker exec -it vespa bash
Use vespa-logfmt to view the vespa log - example:
$ /opt/vespa/bin/vespa-logfmt -l warning,error
For json pretty-print, append
| python -m json.toolto commands that output json - or use jq.
Vespa Cloud deployments
|Slow deployments:||First time deployments takes a few minutes, seeing CERTIFICATE_NOT_READY / PARENT_HOST_NOT_READY / LOAD_BALANCER_NOT_READY is normal. "Installation succeeded!" in the bottom pane indicates success|
|HTTP: 502 — Bad Gateway:||This means the endpoint is not ready, or failing. A Vespa software upgrade will cause this — the application will then be unavailable for 15 minutes or so, as dev instances are not redundant. Look for stopping services in logs to check for this.|
|Retrying — request failed: Java heap space:||If this happens when deploying from the laptop, mvn runs out of memory. Use export MAVEN_OPTS=-Xmx3g to increase the heap size to 3G (or larger as needed).|
|Cannot find *Config classes|
Several projects depend on generated configuration classes. These are created by the generate-sources Maven target. The easiest way to avoid the problem is building the project with Maven from the shell, then importing in Eclipse/IntelliJ. If the project is already imported, first run the generate-sources target either from the IDE or the shell, then mark the pertinent target/generated-sources/vespa-configgen-plugin directories as source directories.
at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:482)increase the maven thread stack size by export MAVEN_OPTS=-Xss2m
|Running on Linux|
IntelliJ does not pick up custom test profiles from
This it is usually a packaging problem:
A provider [the class] registered in SERVER runtime does not implement any provider interfaces applicable in the SERVER runtime. Due to constraint configuration problems the provider [the class] will be ignored.The JAX-RS classes, like the @GET annotation, have been bundled inside the plug-in bundle, causing the container not to recognize them as valid annotations. The fix is using mvn dependency:tree to figure out what dependency has caused JAX-RS to be included, and then add the proper exclusion clause to pom.xml.
|No result returned when throwing WebApplicationException|
The container has no special handling of javax.ws.rs.WebApplicationException and its subclasses. All Jersey plug-ins must either be exception safe, or supply the proper implementations of javax.ws.rs.ext.ExceptionMapper for all exceptions which are expected to be thrown from the plug-in (and annotate these with @Provider).