{"timing":{"querytime":0.007,"summaryfetchtime":0.015,"searchtime":0.023},"root":{"id":"toplevel","relevance":1.0,"fields":{"totalCount":658},"coverage":{"coverage":100,"documents":771,"full":true,"nodes":2,"results":1,"resultsFull":1},"children":[{"id":"id:open:doc::open/en/learn/faq.html","relevance":0.09822477278278806,"source":"documentation","fields":{"sddocname":"doc","content":"<sep />performance/memory-visualizer.html) to evaluate how memory <hi>is</hi> allocated to the fields. Fields can be `index`, `attribute` and `summary`, and combinations of these, with settings like `fast-search` that affects memory usage. [Attributes](../content/attributes.html) <hi>is</hi> a <hi>great</hi> read for understanding <hi>Vespa</hi> memory usage.  ### Archive access failed with Permission 'serviceusage.services.use' denied Listing archived objects can fail, e.g. `gsutil -u my_project ls gs://<hi>vespa</hi>-cloud-data-prod-gcp-us-central1-f-12345f/my_tenant` can fail with `AccessDeniedException<sep />","documentid":"id:open:doc::open/en/learn/faq.html","path":"/en/learn/faq.html","title":"FAQ - frequently asked questions","headers":["Ranking","Does Vespa support a flexible ranking score?","Where would customer specific weightings be stored?","How to create a tensor on the fly in the ranking expression?","How to set a dynamic (query time) ranking drop threshold?","Are ranking expressions or functions evaluated lazily?","Does Vespa support early termination of matching and ranking?","What could cause the relevance field to be -Infinity?","How to pin query results?","Documents","What limits apply to document size?","Is there any size limitation for multivalued fields?","Can a document have lists (key value pairs)?","Does a whole document need to be updated and re-indexed?","What ACID guarantees if any does Vespa provide for single writes / updates / deletes vs batch operations etc?","Does vespa support wildcard fields?","Can we set a limit for the number of elements that can be stored in an array?","How to auto-expire documents / set up garbage collection?","How to increase redundancy and track data migration progress?","How does namespace relate to schema?","Visiting does not dump all documents, and/or hangs.","How to find number of documents in the index?","Can I define a default value for a field?","Query","Are hierarchical facets supported?","Are filters supported?","How to query for similar items?","Does Vespa support stop-word removal?","How to extract more than 400 hits / query and get ALL documents?","How to make a sub-query to get data to enrich the query, like get a user profile?","How to create a cache that refreshes itself regularly"],"namespace":"open","outlinks":["/en/grouping.html","/en/schemas/documents.html","/en/reference/querying/default-result-format.html","/en/applications/document-processors.html","/en/querying/document-summaries.html","/en/writing/indexing.html","/en/querying/text-matching.html","/en/writing/reads-and-writes.html","/en/ranking/wand.html","/en/ranking/multivalue-query-operators.html","/en/basics/ranking.html","/en/schemas/parent-child.html","/en/applications/searchers.html","/en/searching-multi-valued-fields.html","/en/writing/visiting.html","/en/operations/self-managed/admin-procedures.html","/en/reference/schemas/schemas.html","/en/querying/grouping.html","/en/reference/ranking/ranking-expressions.html","/en/ranking/ranking-intro","/en/reference/ranking/rank-features.html","/en/querying/query-language.html","/en/content/consistency","/en/reference/applications/services/container.html","/en/reference/api/query.html","/en/reference/querying/yql.html","/en/writing/document-v1-api-guide.html","/en/writing/batch-delete.html"],"inlinks":{"/en/ranking/wand.html":1,"/en/reference/schemas/schemas.html":1},"term_count":6771,"last_updated":1777453095}},{"id":"id:open:doc::open/en/ranking/onnx.html","relevance":0.08896423288935609,"source":"documentation","fields":{"sddocname":"doc","content":"<hi>Vespa</hi> supports advanced <hi>ranking</hi> models through its tensor API. If your model <hi>is</hi> in the ONNX format, <hi>Vespa</hi> can import and use the model directly. You can use <sep />an embedder, e.g hugging-face-embedder (see embedding). - The model <hi>is</hi> referenced using a URL, e.g. url=\"https://example.com/my-onnx-model/model<sep />path/directory as the model file,   e.g. https://example.com/my-onnx-model/model.onnx_data.  For <hi>ranking</hi>, <hi>Vespa</hi> supports only ONNX models that are self-contained (has no external data files<sep />","documentid":"id:open:doc::open/en/ranking/onnx.html","path":"/en/ranking/onnx.html","title":"Ranking With ONNX Models","headers":["Importing ONNX model files","Ranking with ONNX models","Batch dimensions","Limitations on model size and complexity","Examples","Using Optimum to export models to ONNX format","Using Auto Classes to export HF models to ONNX format","Debugging ONNX models","Using vespa-analyze-onnx-model"],"namespace":"open","outlinks":["/en/reference/ranking/rank-features.html","/en/ranking/optimize model","/en/ranking/cross-encoders","/en/rag/embedding.html","/en/ranking/symbolic size","/en/reference/operations/tools.html","/en/reference/ranking/ranking-expressions.html","/en/ranking/phased-ranking.html","/en/applications/deployment.html","/en/ranking/ranking-intro","/en/reference/rag/embedding.html"],"term_count":1373,"last_updated":1777453097}},{"id":"id:open:doc::open/en/ranking/ranking-expressions-features.html","relevance":0.08669791980570918,"source":"documentation","fields":{"sddocname":"doc","content":" Read the <hi>ranking</hi> introduction first. This guide <hi>is</hi> about <hi>ranking</hi> expressions and rank features, find guides and examples below.     <hi>Ranking</hi> expressions   <hi>Vespa</hi> uses <hi>ranking</hi> expressions to rank documents matching a query, computing<sep />to the rank feature configuration reference.    Feature contribution functions   <hi>Vespa</hi> <hi>ranking</hi> features are linear. For example, the earliness feature <hi>is</hi> 0 if the match <hi>is</hi> at the end of the field, 1 if the match <hi>is</hi> at the start of the field<sep />","documentid":"id:open:doc::open/en/ranking/ranking-expressions-features.html","path":"/en/ranking/ranking-expressions-features.html","title":"Ranking Expressions and Features","headers":["Ranking expressions","Rank features","Normalization","Configuration","Feature contribution functions","Dumping rank features for specific documents","Accessing feature/function values in results","Conditional expressions","The if function","The switch function","Using constants","Using query variables","Query feature types","Function snippets","Tracking relevance variations over time","Examples"],"namespace":"open","outlinks":["/en/applications/searchers.html","/en/reference/querying/default-result-format.html","/en/reference/ranking/tensor.html","/en/searching-multi-valued-fields","/en/reference/schemas/schemas.html","/en/ranking/tensor-user-guide.html","/en/reference/ranking/ranking-expressions.html","/en/ranking/phased-ranking.html","/en/learn/tutorials/text-search-ml","/en/reference/ranking/rank-features.html","/en/reference/api/query.html","/en/reference/querying/yql.html","/en/reference/ranking/rank-feature-configuration.html","/en/ranking/multivalue-query-operators.html","/en/basics/ranking.html","/en/operations/metrics.html"],"inlinks":{"/en/querying/searching-multivalue-fields.html":1,"/en/rag/working-with-chunks.html":1,"/en/reference/ranking/tensor.html":1,"/en/ranking/tensor-examples.html":1,"/en/ranking/wand.html":1,"/en/ranking/xgboost.html":1,"/en/reference/querying/yql.html":1},"term_count":2232,"last_updated":1777453097}},{"id":"id:open:doc::open/en/basics/ranking.html","relevance":0.0844416897408617,"source":"documentation","fields":{"sddocname":"doc","content":"<hi>Ranking</hi> in <hi>Vespa</hi> <hi>is</hi> the computation that <hi>is</hi> done on matching documents during query execution. These are specified as <hi>ranking</hi> <sep />RAG applications, see working with chunks.    Machine-Learned model inference  The best quality <hi>is</hi> achieved by learning relevance functions using machine learning from a training set. <hi>Vespa</hi> lets you use machine-learned models in these formats in distributed <hi>ranking</hi> (first-and second phase):       ONNX, allowing importing models from ML frameworks like<sep />","documentid":"id:open:doc::open/en/basics/ranking.html","path":"/en/basics/ranking.html","title":"Ranking","headers":["Ranking functions and features","Rank profiles","Phased ranking","Ranking functions","Layered ranking","Machine-Learned model inference","Next: Operations"],"namespace":"open","outlinks":["/en/ranking/tensor-user-guide.html","/en/reference/schemas/schemas.html","/en/basics/operations.html","/en/ranking/phased-ranking.html","/en/ranking/xgboost","/en/ranking/onnx","/en/rag/working-with-chunks.html","/en/ranking/nativerank.html","/en/reference/ranking/rank-features.html","/en/reference/api/query.html","/en/reference/querying/sorting-language.html","/en/ranking/lightgbm","/en/querying/query-profiles.html","/en/ranking/ranking-expressions-features.html"],"inlinks":{"/en/querying/searching-multivalue-fields.html":1,"/en/querying/text-matching.html":1,"/en/reference/schemas/schemas.html":1,"/en/reference/querying/simple-query-language.html":1,"/en/reference/querying/yql.html":1},"term_count":714,"last_updated":1777453097}},{"id":"id:blog:doc::blog/the-great-search-engine-debate-elasticsearch-solr-or-vespa/index.html","relevance":0.07922883224670803,"source":"documentation","fields":{"sddocname":"doc","content":"<sep />from the chat log, linking to <hi>Vespa</hi> resources. Please let us know if this <hi>is</hi> useful. Feel free to follow up with the <hi>Vespa</hi> Team using the resources at https://<hi>vespa</hi>.ai/support, Gitter live<sep /> vs Elasticsearch vs <hi>Vespa</hi> – what did we learn at The <hi>Great</hi> Search Engine Debate?.    All three speakers were<sep />three - summary:     <hi>Vespa</hi> has a <hi>great</hi> toolbox for modern retrieval, state-of-the-art retrieval/<hi>ranking</hi> with Machine Learning   <hi>Vespa</hi>’s indexing architecture <sep />","documentid":"id:blog:doc::blog/the-great-search-engine-debate-elasticsearch-solr-or-vespa/index.html","path":"/the-great-search-engine-debate-elasticsearch-solr-or-vespa/","title":"Q and A from The Great Search Engine Debate - Elasticsearch, Solr or Vespa? Meetup","namespace":"blog","authors":"Kristian Aune "}},{"id":"id:open:doc::open/en/ranking/ranking-intro.html","relevance":0.07862762100463462,"source":"documentation","fields":{"sddocname":"doc","content":"<sep />in <hi>Vespa</hi> by using the open query API of <hi>vespa</hi>-documentation-search. In this article, find a set of queries invoking different rank-profiles, which <hi>is</hi> the <hi>ranking</hi> definition.  <hi>Ranking</hi> <hi>is</hi> the user-defined computation<sep />early discard the worst candidates, totalCount <hi>is</hi> an approximation:  yql=select * from doc where {scoreThreshold<sep />: 10}weakAnd( default contains “<hi>vespa</hi>”, default contains “documents”, default contains “about”, default contains “<hi>ranking</hi>”, default contains “and”, default contains<sep />","documentid":"id:open:doc::open/en/ranking/ranking-intro.html","path":"/en/ranking/ranking-intro.html","title":"Introduction to ranking","headers":["Ranking using document features only","Observing values used in ranking","Ranking with query features","Ranking with a query tensor","Retrieval and ranking","Retrieval: AND, OR, weakAnd","Next steps"],"namespace":"open","outlinks":["/en/applications/searchers.html","/en/reference/ranking/tensor.html","/en/reference/schemas/schemas.html","/en/schemas/inheritance-in-schemas.html","/en/reference/ranking/ranking-expressions.html","/en/querying/query-api.html","/en/reference/ranking/rank-features.html","/en/ranking/reranking-in-searcher","/en/reference/api/query.html","/en/ranking/wand.html","/en/reference/querying/yql.html","/en/basics/schemas.html","/en/ranking/ranking-expressions-features.html","/en/basics/ranking.html"],"term_count":1683,"last_updated":1777453097}},{"id":"id:open:doc::open/en/ranking/lightgbm.html","relevance":0.07790427428860221,"source":"documentation","fields":{"sddocname":"doc","content":"<sep />models │   └── lightgbm_model.json ├── schemas │   └── main.sd └── services.xml   Note that an application package can have multiple models. After putting the model in the models directory, it <hi>is</hi> available for both <hi>ranking</hi> and stateless model evaluation.  <hi>Ranking</hi> with LightGBM models  <hi>Vespa</hi> has a <hi>ranking</hi> feature called lightgbm. This <hi>ranking</hi> feature specifies the model to use in a <hi>ranking</hi> expression, relative under the models directory. Consider the following example:   schema test {     rank-profile classify inherits default<sep />","documentid":"id:open:doc::open/en/ranking/lightgbm.html","path":"/en/ranking/lightgbm.html","title":"Ranking with LightGBM Models","headers":["Exporting models from LightGBM","Importing LightGBM models","Ranking with LightGBM models","Objective functions","Using categorical features","Debugging Vespa inference score versus LightGBM predict score"],"namespace":"open","outlinks":["/en/reference/ranking/rank-features.html","/en/ranking/stateless-model-evaluation.html","/en/performance/practical-search-performance-guide.html","/en/reference/api/query.html","/en/ranking/ranking-expressions-features.html","/en/ranking/phased-ranking.html","/en/performance/sizing-search.html","/en/ranking/xgboost"],"inlinks":{"/en/ranking/xgboost.html":1},"term_count":1238,"last_updated":1777453096}},{"id":"id:open:doc::open/en/ranking/xgboost.html","relevance":0.07785286456723993,"source":"documentation","fields":{"sddocname":"doc","content":"<sep />types  <hi>Vespa</hi> can import XGBoost models trained with any objective. Common objectives include:     Regression reg:squarederror / reg:logistic   Classification binary:logistic   <hi>Ranking</hi> rank:pairwise, rank:ndcg and rank:map   <hi>Vespa</hi> evaluates XGBoost models by summing the tree outputs. The only objective-specific behavior <hi>is</hi> for logistic objectives (reg:logistic and binary:logistic), where the raw tree sum must be passed through a sigmoid function to produce a probability.  UBJ models  For UBJ models, <hi>Vespa</hi><sep />","documentid":"id:open:doc::open/en/ranking/xgboost.html","path":"/en/ranking/xgboost.html","title":"Ranking with XGBoost Models","headers":["Exporting models from XGBoost","UBJ format (recommended)","JSON format (legacy)","Feature mappings from XGBoost to Vespa","UBJ feature mapping","JSON feature mapping","Importing XGBoost models","Ranking with XGBoost models","Categorical features","XGBoost objective types","UBJ models","JSON models","Debugging Vespa inference score versus XGBoost predict score"],"namespace":"open","outlinks":["/en/reference/ranking/rank-features.html","/en/performance/practical-search-performance-guide.html","/en/reference/api/query.html","/en/ranking/lightgbm.html","/en/basics/schemas.html","/en/ranking/ranking-expressions-features.html","/en/reference/ranking/ranking-expressions.html","/en/ranking/phased-ranking.html","/en/performance/sizing-search.html"],"term_count":1563,"last_updated":1777453099}},{"id":"id:open:doc::open/en/performance/practical-search-performance-guide.html","relevance":0.07441669008967318,"source":"documentation","fields":{"sddocname":"doc","content":"<sep />indexing.  The minimum required files to create the basic search application are track.sd and services.xml. Create directories for the configuration files:       $ mkdir -p app/schemas; mkdir -p app/search/query-profiles/    Schema  A <hi>Vespa</hi> schema <hi>is</hi> a configuration of a document type and <hi>ranking</hi> and compute specifications. This app use a track schema defined as:   schema track {      document track {          field track_id type string {             indexing: summary | attribute             rank: filter             match: word         }          field title type string {             indexing: summary<sep />","documentid":"id:open:doc::open/en/performance/practical-search-performance-guide.html","path":"/en/performance/practical-search-performance-guide.html","title":"Vespa query performance - a practical guide","headers":["Installing vespa-cli","Dataset","Create a Vespa Application Package","Schema","Services Specification","Deploy the application package","Index the dataset","Basic text search query performance","Hits and summaries","Searching attribute fields","Searching attribute fields using fast-search","Multi-valued query operators","Tensor computations","Multithreaded search and ranking","Advanced range search with hitLimit","Match phase limit - early termination","Advanced query tracing","Tear down the container"],"namespace":"open","outlinks":["/en/reference/querying/default-result-format.html","/en/querying/document-summaries.html","/en/performance/feature-tuning.html","/en/learn/overview.html","/en/basics/applications.html","/en/ranking/nativerank.html","/en/reference/applications/services/content.html","/en/reference/operations/self-managed/tools.html","/en/ranking/wand.html","/en/basics/schemas.html","/en/ranking/multivalue-query-operators.html","/en/basics/ranking.html","/en/content/proton.html","/en/performance/sizing-search.html","/en/querying/approximate-nn-hnsw","/en/operations/metrics.html","/en/linguistics/linguistics.html","/en/searching-multi-valued-fields.html","/en/clients/vespa-cli.html","/en/reference/schemas/document-json-format.html","/en/performance/graceful-degradation.html","/en/ranking/tensor-user-guide.html","/en/reference/schemas/schemas.html","/en/ranking/tensor-examples.html","/en/querying/grouping.html","/en/reference/applications/services/services.html","/en/reference/querying/simple-query-language.html","/en/reference/ranking/rank-features.html","/en/querying/query-language.html","/en/reference/api/query.html","/en/reference/querying/sorting-language.html","/en/reference/querying/yql.html","/en/writing/document-v1-api-guide.html","/en/writing/partial-updates.html","/en/content/attributes.html","/en/querying/query-profiles.html","/en/performance/caches-in-vespa.html","/en/basics/deploy-an-application-local.html"],"inlinks":{"/en/ranking/xgboost.html":1,"/en/reference/querying/yql.html":1,"/en/reference/schemas/schemas.html":1},"term_count":8193,"last_updated":1777453097}},{"id":"id:vespaapps:doc::vespaapps/commerce-product-ranking/","relevance":0.07423976255600047,"source":"documentation","fields":{"sddocname":"doc","content":"            <hi>Vespa</hi> Product <hi>Ranking</hi>  This sample application <hi>is</hi> used to demonstrate how to improve Product Search with Learning to Rank (LTR).  Blog post series<sep />Irrelevant with 0 gain   Label 2 <hi>is</hi> Supplement with 0.01 gain   Label 3 <hi>is</hi> Complement with 0.1 gain   Label 4 <hi>is</hi> Exact with 1 gain    $ cat results.txt   Example <hi>ranking</hi> produced by <hi>Vespa</hi> using the semantic-title rank-profile for query 535:  B08PB9TTKT 1 0.4638 B00B4PJC9K 2 0.4314 B0051GN8JI 3 0.4199 B084TV3C1B<sep />","documentid":"id:vespaapps:doc::vespaapps/commerce-product-ranking/","path":"/commerce-product-ranking/","title":"Vespa Sample Applications: /commerce-product-ranking","namespace":"vespaapps"}}]}}