{"timing":{"querytime":0.002,"summaryfetchtime":0.011,"searchtime":0.013000000000000001},"root":{"id":"toplevel","relevance":1.0,"fields":{"totalCount":553},"coverage":{"coverage":100,"documents":553,"full":true,"nodes":2,"results":1,"resultsFull":1},"children":[{"id":"id:open:doc::open/en/searcher-development.html","relevance":12.0,"source":"documentation","fields":{"sddocname":"doc","content":" The Container is the home for all global processing of user actions (represented as queries) and their results. It provides a development and hosting environment for processing components, and a model for composing such components developed by multiple development teams into a functional whole. This document describes how to develop and deploy Searcher components. To get started with development, see the Developer Guide. For reference, see the Container javadoc, and the services.xml reference. Best practise for queries is submitting the","documentid":"id:open:doc::open/en/searcher-development.html","path":"/en/searcher-development.html","title":"Searcher Development","headers":["Searchers","Queries and Results","Search Chains","Writing a Searcher","Testing a Searcher","Deploying a Searcher","Testing a Searcher with an Application","Passing information between Searchers","Query Context","Parametrizing Searchers","Execution model","Keeping state in Searchers","Multiphase searching","Error handling","Timeouts","WordItem"],"namespace":"open","outlinks":["/en/reference/services-processing.html","/en/faq.html","/en/components/chained-components.html","/en/jdisc/container-components.html","/en/query-profiles.html","/en/query-api.html","/en/federation.html","/en/developer-guide.html","/en/reference/services-search.html","/en/reference/inspecting-structured-data.html"],"inlinks":{"/en/query-profiles.html":1,"/en/ranking.html":1,"/en/developer-guide.html":1,"/en/jdisc/container-components.html":1,"/en/document-summaries.html":1,"/en/query-api.html":1,"/en/federation.html":1,"/en/using-wand-with-vespa.html":1,"/en/multivalue-query-operators.html":1,"/en/document-processing.html":1,"/en/reads-and-writes.html":1,"/en/reference/schema-reference.html":1},"term_count":3490,"last_updated":1711608090,"summaryfeatures":{"attribute(inlinks).count":12.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/schemas.html","relevance":8.0,"source":"documentation","fields":{"sddocname":"doc","content":" A schema defines a document type and what we want to compute over it, the rank-profiles. Schemas are stored in files named the same as the schema, with the ending \".sd\" (for schema definition), in the schemas/ directory of the application package. Refer to the schema reference. Document types, rank profiles and document summaries in schemas can be inherited. Schema example: schema music { document music { field artist type string { indexing: summary | index } field artistId type string { indexing: summary | attribute match: word rank: filter } field title type string { indexing: summary | index","documentid":"id:open:doc::open/en/schemas.html","path":"/en/schemas.html","title":"Schemas","headers":["document","field","Multivalue field","Field size","struct","struct-field","indexing","match","fieldset","rank-profile","IntelliJ plugin","Schema modifications","Multiple schemas","Content nodes and schemas","Content cluster mapping","Inheritance","Schema inheritance","Document type inheritance","Rank profile inheritance","Document summary inheritance"],"namespace":"open","outlinks":["/en/grouping.html","/en/operations/reindexing.html","/en/documents.html","/en/query-language.html","/en/reference/query-language-reference.html","/en/reference/grouping-syntax.html","/en/reference/query-api-reference.html","/en/parent-child.html","/en/getting-started-ranking.html","/en/reference/schema-reference.html","/en/query-api.html","/en/attributes.html","/en/operations-selfhosted/procedure-change-attribute-index.html","/en/performance/sizing-search.html","/en/ranking.html","/en/text-matching.html","/en/reference/default-result-format.html","/en/query-profiles.html","/en/schemas.html","/en/application-packages.html","/en/federation.html","/en/ranking-expressions-features.html","/en/nativerank.html","/en/reference/validation-overrides.html","/en/proton.html","/en/document-summaries.html","/en/reference/rank-features.html","/en/document-v1-api-guide.html"],"inlinks":{"/en/parent-child.html":1,"/en/reference/services-content.html":1,"/en/searching-multi-valued-fields.html":1,"/en/ranking.html":1,"/en/attributes.html":1,"/en/embedding.html":1,"/ja/overview.html":1,"/en/federation.html":1},"term_count":2517,"last_updated":1711608090,"summaryfeatures":{"attribute(inlinks).count":8.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/reference/schema-reference.html","relevance":6.0,"source":"documentation","fields":{"sddocname":"doc","content":" This documents the syntax and content of schemas, document types and fields. This is a reference, see schemas for an overview and examples. Syntax Throughout this document, a string in square brackets represents some argument. The whole string, including the brackets, is replaced by a concrete string in a schema. Constructs in schemas have a regular syntax. Each element starts by the element identifier, possibly followed by the name of this particular occurrence of the element, possibly followed by a space-separated list of interleaved attribute names and attribute values, possibly followed by","documentid":"id:open:doc::open/en/reference/schema-reference.html","path":"/en/reference/schema-reference.html","title":"Schema Reference","headers":["Syntax","Elements","schema","document","struct","field","struct-field","fieldset","compression","rank-profile","match-phase","strict","diversity","first-phase","expression","rank-features","inputs","constants","rank-properties","function (inline)? [name]","second-phase","global-phase","summary-features","match-features","mutate","constant","raw-as-base64-in-summary","onnx-model","document-summary","stemming","normalizing","dictionary","attribute","sorting","distance-metric","euclidean","angular","dotproduct","prenormalized-angular","geodegrees","hamming","bolding","id","index","hnsw","indexing","match","rank","query-command","rank-type","summary-to","summary","weight","weightedset","annotation","import field","Document and search field types","Modifying schemas","Valid changes without restart or re-feed","Changes that require restart but not re-feed","Changes that require reindexing","Changes that require re-feed"],"namespace":"open","outlinks":["/en/searcher-development.html","/en/performance/practical-search-performance-guide.html","/en/operations/reindexing.html","/en/documents.html","/en/reads-and-writes.html","/en/performance/feature-tuning.html","/en/query-language.html","/en/reference/query-language-reference.html","/en/reference/grouping-syntax.html","/en/reference/query-api-reference.html","/en/document-processing.html","/en/reference/constant-tensor-json-format.html","/en/operations-selfhosted/admin-procedures.html","/en/parent-child.html","/en/linguistics.html","/en/reference/schema-reference.html","/en/query-api.html","/en/attributes.html","/en/nearest-neighbor-search.html","/en/reference/nativerank.html","/en/phased-ranking.html","/en/ranking.html","/en/text-matching.html","/en/faq.html","/en/query-profiles.html","/en/reference/default-result-format.html","/en/predicate-fields.html","/en/streaming-search.html","/en/schemas.html","/en/tensor-user-guide.html","/en/onnx.html","/en/reference/rank-feature-configuration.html","/en/reference/document-json-format.html","/en/ranking-expressions-features.html","/en/reference/tensor.html","/en/approximate-nn-hnsw.html","/en/geo-search.html","/en/annotations.html","/en/reference/application-packages-reference.html","/en/proton.html","/en/document-summaries.html","/en/graceful-degradation.html","/en/reference/services-content.html","/en/reference/indexing-language-reference.html","/en/vespa8-release-notes.html","/en/reference/rank-features.html","/en/reference/ranking-expressions.html","/en/performance/sizing-feeding.html"],"inlinks":{"/en/parent-child.html":1,"/en/reference/tensor.html":1,"/en/reference/sorting.html":1,"/en/reference/deploy-rest-api-v2.html":1,"/en/reference/rank-types.html":1,"/en/document-summaries.html":1},"term_count":14962,"last_updated":1711608090,"summaryfeatures":{"attribute(inlinks).count":6.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/application-packages.html","relevance":6.0,"source":"documentation","fields":{"sddocname":"doc","content":" An application package is a set of files in a specific structure that defines a deployable application. It contains all the configuration, components and machine-learned models that is necessary to deploy and run the application: No configuration is ever done locally on Vespa nodes or over remote APIs. The application package is a directory, containing at minimum services.xml. Additionally, services.xml might consume other files or directories from the application package - see the reference for a full list. A change to code and configuration is atomically deployed to running instances. To ensure code and config consistency, config definition","documentid":"id:open:doc::open/en/application-packages.html","path":"/en/application-packages.html","title":"Application Packages","headers":["Deploy","Convergence","File distribution","Deploying remote models","services.xml","Component configuration","Node configuration","Configuration assembly","Configuration delivery","Configuration definitions","Component view","Delivery mechanism","Bootstrapping","System upgrades","Notes","Further reads"],"namespace":"open","outlinks":["/en/reference/application-v2-tenant.html","/en/operations/tools.html","/en/reference/services.html","/en/operations-selfhosted/config-proxy.html","/en/onnx.html","/en/operations-selfhosted/vespa-cmdline-tools.html","/en/vespa-cli.html","/en/reference/validation-overrides.html","/en/operations-selfhosted/config-sentinel.html","/en/reference/application-packages-reference.html","/en/components/bundles.html","/en/reference/schema-reference.html","/en/jdisc/index.html","/en/contributing/configapi-dev.html","/en/lightgbm.html","/en/contributing/configapi-dev-cpp.html","/en/contributing/configapi-dev-java.html","/en/configuring-components.html","/en/operations-selfhosted/configuration-server.html","/en/operations-selfhosted/files-processes-and-ports.html","/en/tensorflow.html","/en/xgboost.html","/en/reference/config-files.html"],"inlinks":{"/en/query-profiles.html":1,"/en/jdisc/http-server-and-filters.html":1,"/en/reference/services.html":1,"/en/cross-encoders.html":1,"/en/components/bundles.html":1,"/en/document-processing.html":1},"term_count":2382,"last_updated":1711608088,"summaryfeatures":{"attribute(inlinks).count":6.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/attributes.html","relevance":5.0,"source":"documentation","fields":{"sddocname":"doc","content":" An attribute is a schema keyword, specifying the indexing for a field: field price type int { indexing: attribute } Attribute properties and use cases: Flexible match modes including exact match, prefix match, and case-sensitive matching, but not token matching. High sustained update rates (avoiding read-apply-write patterns). Any mutating operation against an attribute field is written to Vespa's transaction log and persisted, but appending to the log is sequential access, not random. Read more in partial updates. Instant query updates - values are immediately searchable. Document","documentid":"id:open:doc::open/en/attributes.html","path":"/en/attributes.html","title":"Attributes","headers":["Data structures","Index structures","Attribute memory usage","Sizing","Components","Variants","Paged attributes","Paged attributes disadvantages","Mutable attributes","Document meta store"],"namespace":"open","outlinks":["/en/text-matching.html","/en/grouping.html","/en/partial-updates.html","/en/schemas.html","/en/operations/feed-block.html","/en/reference/sorting.html","/en/reference/tensor.html","/en/performance/feature-tuning.html","/en/reference/query-language-reference.html","/en/approximate-nn-hnsw.html","/en/parent-child.html","/en/proton.html","/en/linguistics.html","/en/document-summaries.html","/en/reference/schema-reference.html","/en/files/Attribute-memory-Vespa.xls","/en/attributes.html","/en/nearest-neighbor-search.html","/en/reference/state-v1.html","/en/phased-ranking.html","/en/performance/sizing-feeding.html","/en/ranking.html"],"inlinks":{"/en/parent-child.html":1,"/en/grouping.html":1,"/en/cross-encoders.html":1,"/en/document-summaries.html":1,"/en/multivalue-query-operators.html":1},"term_count":2916,"last_updated":1711608088,"summaryfeatures":{"attribute(inlinks).count":5.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/reference/services-container.html","relevance":5.0,"source":"documentation","fields":{"sddocname":"doc","content":" This is the reference for container cluster configuration: container [version, id] http server [id, port] filtering handler [id, class, bundle] binding component client [id, class, bundle] binding component server [id, class, bundle] components component search include [dir] binding searcher federation provider chain renderer document-processing include [dir] documentprocessor chain processing include [dir] binding processor chain renderer document-api abortondocumenterror retryenabled route maxpendingdocs maxpendingbytes retrydelay timeout","documentid":"id:open:doc::open/en/reference/services-container.html","path":"/en/reference/services-container.html","title":"services.xml - container","headers":["handler","binding","server","components","component","document-api","document","accesslog","include","nodes","environment-variables","jvm","node","secret-store","group","zookeeper"],"namespace":"open","outlinks":["/en/reference/services-processing.html","/en/reference/services.html","/en/stateless-model-evaluation.html","/en/reference/services-search.html","/en/concrete-documents.html","/en/reference/hosts.html","/en/reference/services-docproc.html","/en/reference/services-http.html","/en/reference/document-v1-api-reference.html","/en/access-logging.html","/en/jdisc/injecting-components.html","/en/api.html","/en/reference/config-files.html"],"inlinks":{"/en/using-zookeeper.html":1,"/en/components/bundles.html":1,"/en/operations-selfhosted/routing.html":1,"/en/vespa-feed-client.html":1,"/en/reference/services.html":1},"term_count":1482,"last_updated":1711608090,"summaryfeatures":{"attribute(inlinks).count":5.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/operations-selfhosted/vespa-cmdline-tools.html","relevance":5.0,"source":"documentation","fields":{"sddocname":"doc","content":" This is the reference for the Vespa command-line tools. The tools listed on this page are primarily used for operating and debugging a self-hosted Vespa instance. For most use-cases we recommend the Vespa CLI which should work against most Vespa applications regardless of how they are deployed. vespa-configproxy-cmd vespa-configproxy-cmd is a status and control tool for the config proxy. The config proxy runs on all nodes as a proxy for one or more config servers. It connects to the config proxy on localhost by default. Run it without arguments to dump a list of active configIds - format specification: <config definition name>,<","documentid":"id:open:doc::open/en/operations-selfhosted/vespa-cmdline-tools.html","path":"/en/operations-selfhosted/vespa-cmdline-tools.html","title":"Vespa Command-line Tools","headers":["vespa-configproxy-cmd","vespa-configserver-remove-state","vespa-config-status","vespa-deploy","vespa-destination","vespa-fbench-filter-file","vespa-fbench-geturl","vespa-fbench-split-file","vespa-feeder","vespa-get","vespa-get-cluster-state","vespa-get-config","vespa-get-node-state","vespa-index-inspect","vespa-attribute-inspect","vespa-jvm-dumper","vespa-logctl","vespa-logfmt","vespa-model-inspect","vespa-print-default","vespa-proton-cmd","vespa-remove-index","vespa-route","vespa-sentinel-cmd","vespa-set-node-state","vespa-start-configserver","vespa-start-services","vespa-stat","vespa-status-filedistribution","vespa-stop-configserver","vespa-stop-services","vespa-summary-benchmark","vespa-visit","vespa-visit-target"],"namespace":"open","outlinks":["/en/content/content-nodes.html","/en/documents.html","/en/operations-selfhosted/config-proxy.html","/en/content/consistency.html","/en/reference/deploy-rest-api-v2.html","/en/vespa-cli.html","/en/operations-selfhosted/admin-procedures.html","/en/linguistics.html","/en/content/buckets.html","/en/reference/document-v1-api-reference.html","/en/reference/cluster-v2.html","/en/operations-selfhosted/files-processes-and-ports.html","/en/operations-selfhosted/routing.html","/en/query-rewriting.html","/en/text-matching.html","/en/streaming-search.html","/en/reference/document-json-format.html","/en/visiting.html","/en/reference/document-select-language.html","/en/operations-selfhosted/config-sentinel.html","/en/proton.html","/en/reference/application-packages-reference.html","/en/operations-selfhosted/multinode-systems.html","/en/reference/logs.html","/en/contributing/configapi-dev.html","/en/reference/services-content.html","/en/operations-selfhosted/configuration-server.html"],"inlinks":{"/en/operations-selfhosted/procedure-change-attribute-index.html":1,"/en/content/consistency.html":1,"/en/components/bundles.html":1,"/en/operations-selfhosted/container.html":1,"/en/performance/profiling.html":1},"term_count":6358,"last_updated":1711608090,"summaryfeatures":{"attribute(inlinks).count":5.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/performance/feature-tuning.html","relevance":4.0,"source":"documentation","fields":{"sddocname":"doc","content":" This document describes tuning certain features of an application for high performance, the main focus is on content cluster search features, see Container tuning for tuning of container clusters. The search sizing guide is about scaling an application deployment. Attribute v.s index The attribute documentation summaries when to use attribute in the indexing statement. Also see the procedure for changing from attribute to index and vice-versa. field timestamp type long { indexing: summary | attribute rank: filter } If both index and attribute is configured for string type fields, Vespa will do search and matching against the index with default match text","documentid":"id:open:doc::open/en/performance/feature-tuning.html","path":"/en/performance/feature-tuning.html","title":"Vespa Serving Tuning","headers":["Attribute v.s index","When to use fast-search for attribute fields","Hybrid TAAT and DAAT query evaluation","Indexing uuids","Parent child and search performance","Ranking and ML Model inferences","Multi Lookup - Set filtering","Document summaries - hits","Boolean, numeric, text attribute","Tensor ranking","Memory","Compute","Multiphase ranking","Cell value types","Inner/outer products","Mapped lookups","Three-way dot product - mapped","Three-way dot product - mixed"],"namespace":"open","outlinks":["/en/searcher-development.html","/en/schemas.html","/en/performance/practical-search-performance-guide.html","/en/using-wand-with-vespa.html","/en/tensor-user-guide.html","/en/reference/bm25.html","/en/reference/query-language-reference.html","/en/nativerank.html","/en/reference/query-api-reference.html","/en/document-summaries.html","/en/reference/schema-reference.html","/en/linguistics.html","/en/tensor-examples.html","/en/attributes.html","/en/performance/container-tuning.html","/en/reference/services-content.html","/en/reference/rank-features.html","/en/phased-ranking.html","/en/performance/caches-in-vespa.html","/en/performance/sizing-search.html","/en/reference/ranking-expressions.html","/en/ranking.html"],"inlinks":{"/en/parent-child.html":1,"/en/reference/schema-reference.html":1,"/en/attributes.html":1,"/en/reference/tensor.html":1},"term_count":3209,"last_updated":1711608088,"summaryfeatures":{"attribute(inlinks).count":4.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/reference/query-language-reference.html","relevance":3.0,"source":"documentation","fields":{"sddocname":"doc","content":" Vespa accepts unstructured human input and structured queries for application logic separately, then combines them into a single data structure for executing. Human input is parsed heuristically, while application queries are formulated in YQL. See the Query Language Guide for query examples A query URL looks like: http://myhost.mydomain.com:8080/search/?yql=select%20%2A%20from%20sources%20%2A%20where%20text%20contains%20%22blues%22 In other words, yql contains: select * from sources * where text contains \"blues\" This matches all documents where the field named text","documentid":"id:open:doc::open/en/reference/query-language-reference.html","path":"/en/reference/query-language-reference.html","title":"YQL Query Language Reference","headers":["select","from sources","where","order by","limit / offset","timeout","Parameter substitution","Annotations","Annotations of sub-expressions","Query properties","YQL in query profiles","Query rewriting in Searchers","Grouping"],"namespace":"open","outlinks":["/en/multivalue-query-operators.html","/en/grouping.html","/en/performance/practical-search-performance-guide.html","/en/using-wand-with-vespa.html","/en/performance/feature-tuning.html","/en/reference/query-language-reference.html","/en/query-language.html","/en/reference/query-api-reference.html","/en/linguistics.html","/en/reference/schema-reference.html","/en/query-api.html","/en/attributes.html","/en/nearest-neighbor-search.html","/en/query-rewriting.html","/en/ranking.html","/en/text-matching.html","/en/query-profiles.html","/en/faq.html","/en/predicate-fields.html","/en/application-packages.html","/en/streaming-search.html","/en/schemas.html","/en/tensor-user-guide.html","/en/federation.html","/en/ranking-expressions-features.html","/en/reference/sorting.html","/en/nativerank.html","/en/approximate-nn-hnsw.html","/en/geo-search.html","/en/nearest-neighbor-search-guide.html","/en/graceful-degradation.html","/en/reference/services-content.html","/en/reference/rank-features.html","/en/reference/simple-query-language-reference.html"],"inlinks":{"/en/reference/schema-reference.html":1,"/en/attributes.html":1,"/en/using-wand-with-vespa.html":1},"term_count":7362,"last_updated":1711608089,"summaryfeatures":{"attribute(inlinks).count":3.0,"vespa.summaryFeatures.cached":0.0}}},{"id":"id:open:doc::open/en/documents.html","relevance":3.0,"source":"documentation","fields":{"sddocname":"doc","content":" Vespa models data as documents. A document has a string identifier, set by the application, unique across all documents. A document is a set of key-value pairs. A document has a schema (i.e. type), defined in the schema. When configuring clusters, a documents element set what document types a cluster is to store. This configuration is used to configure the garbage collector if it is enabled. Additionally, it is used to define default routes for documents sent into the application. By default, a document will be sent to all clusters having the document type defined. Refer to routing for","documentid":"id:open:doc::open/en/documents.html","path":"/en/documents.html","title":"Documents","headers":["Document IDs","id scheme","Namespace","Fields","Fieldsets","Document expiry","Processing documents"],"namespace":"open","outlinks":["/en/elasticity.html","/en/schemas.html","/en/streaming-search.html","/en/vespa-cli.html","/en/document-api-guide.html","/en/visiting.html","/en/reference/document-select-language.html","/en/document-processing.html","/en/parent-child.html","/en/reference/schema-reference.html","/en/content/buckets.html","/en/reference/services-content.html","/en/reference/indexing-language-reference.html","/en/document-v1-api-guide.html","/en/operations-selfhosted/routing.html","/en/operations/metrics.html"],"inlinks":{"/en/parent-child.html":1,"/en/reference/schema-reference.html":1,"/en/document-summaries.html":1},"term_count":1324,"last_updated":1711608088,"summaryfeatures":{"attribute(inlinks).count":3.0,"vespa.summaryFeatures.cached":0.0}}}]}}