diff --git a/_config.yml b/_config.yml index 87eec9c9b28..ca86146a7f3 100644 --- a/_config.yml +++ b/_config.yml @@ -184,7 +184,7 @@ opensearch_collection: name: Aggregations nav_fold: true search-plugins: - name: Search features + name: Search nav_fold: true vector-search: name: Vector search diff --git a/_search-plugins/async/index.md b/_search-plugins/async/index.md index 099279ba915..e7e7db11b2a 100644 --- a/_search-plugins/async/index.md +++ b/_search-plugins/async/index.md @@ -1,7 +1,7 @@ --- layout: default title: Asynchronous search -nav_order: 51 +nav_order: 40 parent: Improving search performance has_children: true redirect_from: diff --git a/_search-plugins/caching/index.md b/_search-plugins/caching/index.md index c0fe48176ae..880069f8413 100644 --- a/_search-plugins/caching/index.md +++ b/_search-plugins/caching/index.md @@ -3,7 +3,7 @@ layout: default title: Caching parent: Improving search performance has_children: true -nav_order: 100 +nav_order: 10 redirect_from: - /search-plugins/caching/ --- @@ -18,9 +18,9 @@ Understanding how your data uses the cache can help improve your cluster's perfo OpenSearch supports the following on-heap cache types: -- [**Index request cache**]({{site.url}}{{site.baseurl}}/search-plugins/caching/request-cache/): Caches the local results on each shard. This allows frequently used and potentially resource-heavy search requests to return results almost instantaneously. +- [**Index request cache**]({{site.url}}{{site.baseurl}}/search-plugins/caching/request-cache/): Caches the local results on each shard. This allows frequently used and potentially resource-heavy search requests to return results almost instantaneously. - **Query cache**: Caches common data from similar queries at the shard level. The query cache is more granular than the request cache and can cache data to be reused in different queries. -- **Field data cache**: Caches field data and global ordinals, which are both used to support aggregations on certain field types. +- [**Field data cache**]({{site.url}}{{site.baseurl}}/search-plugins/caching/field-data-cache/): Caches field data and global ordinals, which are both used to support aggregations on certain field types. ## Additional cache stores diff --git a/_search-plugins/concurrent-segment-search.md b/_search-plugins/concurrent-segment-search.md index 049be4b1906..dc2d4cb964b 100644 --- a/_search-plugins/concurrent-segment-search.md +++ b/_search-plugins/concurrent-segment-search.md @@ -2,7 +2,7 @@ layout: default title: Concurrent segment search parent: Improving search performance -nav_order: 53 +nav_order: 20 --- # Concurrent segment search diff --git a/_search-plugins/cross-cluster-search.md b/_search-plugins/cross-cluster-search.md index 23e223df23b..21e19eeec9e 100644 --- a/_search-plugins/cross-cluster-search.md +++ b/_search-plugins/cross-cluster-search.md @@ -1,7 +1,7 @@ --- layout: default title: Cross-cluster search -nav_order: 65 +nav_order: 230 redirect_from: - /security/access-control/cross-cluster-search/ - /security-plugin/access-control/cross-cluster-search/ diff --git a/_search-plugins/filter-search.md b/_search-plugins/filter-search.md index 28393055b49..886c636b8b5 100644 --- a/_search-plugins/filter-search.md +++ b/_search-plugins/filter-search.md @@ -1,7 +1,7 @@ --- layout: default title: Filter results -parent: Search options +parent: Customizing search results nav_order: 36 --- diff --git a/_search-plugins/improving-search-performance.md b/_search-plugins/improving-search-performance.md index 4cc0a60dc0e..4997d1a7879 100644 --- a/_search-plugins/improving-search-performance.md +++ b/_search-plugins/improving-search-performance.md @@ -3,14 +3,19 @@ layout: default title: Improving search performance nav_order: 220 has_children: true +has_toc: false --- # Improving search performance -OpenSearch offers several ways to improve search performance: +OpenSearch offers several ways to improve search performance, from foundational optimizations to specialized techniques: -- Run resource-intensive queries asynchronously with [asynchronous search]({{site.url}}{{site.baseurl}}/search-plugins/async/). +- Store frequently accessed data in memory with [caching]({{site.url}}{{site.baseurl}}/search-plugins/caching/) for faster retrieval. -- Search segments concurrently using [concurrent segment search]({{site.url}}{{site.baseurl}}/search-plugins/concurrent-segment-search/). +- Search segments concurrently using [concurrent segment search]({{site.url}}{{site.baseurl}}/search-plugins/concurrent-segment-search/) for better resource utilization. -- Improve aggregation performance using a [star-tree index]({{site.url}}{{site.baseurl}}/search-plugins/star-tree-index/). +- Control shard selection for optimized query routing with [search shard routing]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/search-shard-routing/). + +- Run resource-intensive queries asynchronously with [asynchronous search]({{site.url}}{{site.baseurl}}/search-plugins/async/) to avoid timeouts. + +- Improve aggregation performance using a [star-tree index]({{site.url}}{{site.baseurl}}/search-plugins/star-tree-index/) for analytical workloads. diff --git a/_search-plugins/index.md b/_search-plugins/index.md index 7f40e68f732..90584de3138 100644 --- a/_search-plugins/index.md +++ b/_search-plugins/index.md @@ -1,6 +1,6 @@ --- layout: default -title: Search features +title: Search nav_order: 1 has_children: false has_toc: false @@ -8,91 +8,57 @@ nav_exclude: true permalink: /search-plugins/ redirect_from: - /search-plugins/index/ -keyword: +search_methods: - heading: "Keyword (BM25) search" - description: "Find exact and close matches using traditional text search" + description: "Lexical text search using the BM25 algorithm to match and rank documents based on term frequency and document length. Find exact and close matches using traditional text search." link: "/search-plugins/keyword-search/" -vector: - heading: "Vector search" - description: "Search by similarity using dense or sparse vector embeddings" + description: "Similarity (k-nearest neighbor) search using dense and sparse vector embeddings to power semantic search, retrieval-augmented generation, and multimodal image search." link: "/vector-search/" -ai: - heading: "AI search" - description: "Build intelligent search applications using AI models" + description: "AI-powered search capabilities beyond vector embeddings. Enrich search and ingestion flows with any AI service to power the full range of AI-enhanced search use cases." link: "/vector-search/ai-search/" --- -# Search features +# Search OpenSearch provides many features for customizing your search use cases and improving search relevance. ## Search methods -OpenSearch supports the following search methods. +OpenSearch supports multiple search methods to meet different use cases and requirements. -### Exact matching and keywords - -OpenSearch implements lexical (keyword) text search using the BM25 algorithm to match and rank documents based on term frequency and document length. - -{% include cards.html cards=page.keyword %} - -### Similarity and meaning - -OpenSearch supports similarity (k-nearest neighbor) search using dense and sparse vector embeddings to power use cases such as semantic search, retrieval-augmented generation, and multimodal image search. - -{% include cards.html cards=page.vector %} - -### AI-powered search - -OpenSearch supports AI-powered search capabilities beyond vector embeddings. OpenSearch's AI search enables search and ingestion flows to be enriched by any AI service to power the full range of AI-enhanced search use cases. - -{% include cards.html cards=page.ai %} +{% include cards.html cards=page.search_methods %} ## Query languages -In OpenSearch, you can use the following query languages to search your data: - -- [Query domain-specific language (DSL)]({{site.url}}{{site.baseurl}}/query-dsl/index/): The primary OpenSearch query language that supports creating complex, fully customizable queries. +In OpenSearch, you can use the following query languages to search your data. -- [Query string query language]({{site.url}}{{site.baseurl}}/query-dsl/full-text/query-string/): A scaled-down query language that you can use in a query parameter of a search request or in OpenSearch Dashboards. +Language | Where you can use it | Description +:--- | :--- | :--- +[Query domain-specific language (DSL)]({{site.url}}{{site.baseurl}}/query-dsl/index/) | Search API, Dev Tools | The primary OpenSearch query language that supports creating complex, fully customizable queries. +[Query string query language]({{site.url}}{{site.baseurl}}/query-dsl/full-text/query-string/) | Search API `q` parameter, Discover and Dashboard search bar | A scaled-down query language whose syntax is based on Apache Lucene. +[SQL]({{site.url}}{{site.baseurl}}/search-plugins/sql/sql/index/) | SQL API, Query Workbench | A traditional query language that bridges the gap between relational database concepts and the flexibility of OpenSearch's document-oriented data storage. +[Piped Processing Language (PPL)]({{site.url}}{{site.baseurl}}/search-plugins/sql/ppl/index/) | PPL API, Query Workbench | The primary language used with observability in OpenSearch. PPL uses a pipe syntax that chains commands into a query. -- [SQL]({{site.url}}{{site.baseurl}}/search-plugins/sql/sql/index/): A traditional query language that bridges the gap between traditional relational database concepts and the flexibility of OpenSearch’s document-oriented data storage. +For information about querying data in OpenSearch Dashboards, including the Dashboards Query Language (DQL), see [OpenSearch Dashboards query languages]({{site.url}}{{site.baseurl}}/dashboards/#query-languages). -- [Piped Processing Language (PPL)]({{site.url}}{{site.baseurl}}/search-plugins/sql/ppl/index/): The primary language used with observability in OpenSearch. PPL uses a pipe syntax that chains commands into a query. +## Customizing search results -- [Dashboards Query Language (DQL)]({{site.url}}{{site.baseurl}}/dashboards/dql/): A simple text-based query language for filtering data in OpenSearch Dashboards. +OpenSearch provides fundamental result handling capabilities that work with all search types. You can customize result navigation (pagination, sorting), result formatting (highlighting, field selection), query enhancement (autocomplete, did-you-mean), and result filtering. For more information, see [Customizing search results]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/). -## Search performance +## Optimizing search quality -OpenSearch offers several ways to improve search performance: +OpenSearch provides comprehensive tools and features to help you measure, analyze, and improve the quality of your search results. These integrated features work together to optimize search relevance based on user behavior and machine learning. For more information, see [Optimizing search quality]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/). -- [Asynchronous search]({{site.url}}{{site.baseurl}}/search-plugins/async/): Runs resource-intensive queries asynchronously. - -- [Concurrent segment search]({{site.url}}{{site.baseurl}}/search-plugins/concurrent-segment-search/): Searches segments concurrently. - -## Search relevance - -*Search relevance* is a measure of how well a document matches a search query. When you run a search query, OpenSearch compares the words in your query to the words in each document and assigns a relevance score based on factors such as how frequently the words appear and how closely they match. For more information, see [Relevance]({{site.url}}{{site.baseurl}}/getting-started/intro/#relevance). - -To help you fine-tune and improve search relevance, OpenSearch provides several specialized features: - -- [Search Relevance Workbench]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/using-search-relevance-workbench/): A suite of tools that support search quality improvements through experimentation. - -- [Querqy]({{site.url}}{{site.baseurl}}/search-plugins/querqy/): Offers query rewriting capability. +## Search pipelines -- [User Behavior Insights]({{site.url}}{{site.baseurl}}/search-plugins/ubi/): Links user behavior to user queries to improve search quality. - -## Search results +Search pipelines are the foundational infrastructure that enables OpenSearch's AI and vector search capabilities. They provide modular processors that can transform queries (text-to-vector conversion, ML inference, query rewriting), enhance results (reranking, RAG, field manipulation), and orchestrate complex AI workflows. For more information, see [Search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/). -OpenSearch supports the following commonly used operations on search results: +## Improving search performance -- [Paginate]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/paginate/) -- [Paginate with Point in Time]({{site.url}}{{site.baseurl}}/search-plugins/point-in-time/) -- [Sort]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/sort/) -- [Highlight search terms]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/highlight/) -- [Autocomplete]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/autocomplete/) -- [Did-you-mean]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/did-you-mean/) +OpenSearch provides various features to optimize search performance from foundational caching techniques to specialized optimizations. For more information, see [Improving search performance]({{site.url}}{{site.baseurl}}/search-plugins/improving-search-performance/). -## Search pipelines +## Cross-cluster search -You can process search queries and search results with [search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/index/). +OpenSearch supports searching across multiple clusters to scale your search infrastructure for large deployments. For more information, see [Cross-cluster search]({{site.url}}{{site.baseurl}}/search-plugins/cross-cluster-search/). diff --git a/_search-plugins/ltr/advanced-functionality.md b/_search-plugins/ltr/advanced-functionality.md index 50a7e6de199..327620e110f 100644 --- a/_search-plugins/ltr/advanced-functionality.md +++ b/_search-plugins/ltr/advanced-functionality.md @@ -3,6 +3,7 @@ layout: default title: Advanced functionality nav_order: 80 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/core-concepts.md b/_search-plugins/ltr/core-concepts.md index 4a7f73e4ce4..61a71f006b3 100644 --- a/_search-plugins/ltr/core-concepts.md +++ b/_search-plugins/ltr/core-concepts.md @@ -3,6 +3,7 @@ layout: default title: ML ranking core concepts nav_order: 10 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/faq.md b/_search-plugins/ltr/faq.md index 14db276b3ab..d0a8c053556 100644 --- a/_search-plugins/ltr/faq.md +++ b/_search-plugins/ltr/faq.md @@ -3,6 +3,7 @@ layout: default title: Common issues nav_order: 1000 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/feature-engineering.md b/_search-plugins/ltr/feature-engineering.md index a059dcf7096..8efdb874820 100644 --- a/_search-plugins/ltr/feature-engineering.md +++ b/_search-plugins/ltr/feature-engineering.md @@ -3,6 +3,7 @@ layout: default title: Feature engineering nav_order: 40 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/fits-in.md b/_search-plugins/ltr/fits-in.md index 30ca291b823..18b7f6987ed 100644 --- a/_search-plugins/ltr/fits-in.md +++ b/_search-plugins/ltr/fits-in.md @@ -3,6 +3,7 @@ layout: default title: Scope of the plugin nav_order: 20 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/index.md b/_search-plugins/ltr/index.md index e6c4aeff36e..6783d00a747 100644 --- a/_search-plugins/ltr/index.md +++ b/_search-plugins/ltr/index.md @@ -1,7 +1,8 @@ --- layout: default title: Learning to Rank -nav_order: 20 +parent: Optimizing search quality +nav_order: 40 has_children: true has_toc: false redirect_from: @@ -22,3 +23,20 @@ The following resources can help you get started: - If you are new to LTR, start with the [ML ranking core concepts]({{site.url}}{{site.baseurl}}/search-plugins/ltr/core-concepts/) documentation. - For a quick introduction, see the demo in [hello-ltr](https://github.com/o19s/hello-ltr). - If you are familiar with LTR, start with the [Integrating the plugin]({{site.url}}{{site.baseurl}}/search-plugins/ltr/fits-in/) documentation. + +## Documentation + +### Core concepts and setup +- [Core concepts]({{site.url}}{{site.baseurl}}/search-plugins/ltr/core-concepts/): Understand the fundamental concepts behind Learning to Rank. +- [Fits in]({{site.url}}{{site.baseurl}}/search-plugins/ltr/fits-in/): Learn how LTR integrates with your OpenSearch infrastructure. + +### Feature engineering and model development +- [Feature engineering]({{site.url}}{{site.baseurl}}/search-plugins/ltr/feature-engineering/): Design effective features for your ranking models. +- [Working with features]({{site.url}}{{site.baseurl}}/search-plugins/ltr/working-with-features/): Create and manage feature sets. +- [Logging features]({{site.url}}{{site.baseurl}}/search-plugins/ltr/logging-features/): Collect feature data for model training. +- [Training models]({{site.url}}{{site.baseurl}}/search-plugins/ltr/training-models/): Build and train your ranking models. + +### Deployment and advanced topics +- [Searching with your model]({{site.url}}{{site.baseurl}}/search-plugins/ltr/searching-with-your-model/): Deploy models in production search. +- [Advanced functionality]({{site.url}}{{site.baseurl}}/search-plugins/ltr/advanced-functionality/): Explore advanced LTR features and techniques. +- [FAQ]({{site.url}}{{site.baseurl}}/search-plugins/ltr/faq/): Common questions and troubleshooting. diff --git a/_search-plugins/ltr/logging-features.md b/_search-plugins/ltr/logging-features.md index 7922b8683d8..7f3fed7111f 100644 --- a/_search-plugins/ltr/logging-features.md +++ b/_search-plugins/ltr/logging-features.md @@ -3,6 +3,7 @@ layout: default title: Logging feature scores nav_order: 50 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/searching-with-your-model.md b/_search-plugins/ltr/searching-with-your-model.md index ca1ff87307e..186e74e6786 100644 --- a/_search-plugins/ltr/searching-with-your-model.md +++ b/_search-plugins/ltr/searching-with-your-model.md @@ -3,6 +3,7 @@ layout: default title: Optimizing search with LTR nav_order: 70 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/training-models.md b/_search-plugins/ltr/training-models.md index fb068cedd7c..98fa6ac1bb0 100644 --- a/_search-plugins/ltr/training-models.md +++ b/_search-plugins/ltr/training-models.md @@ -3,6 +3,7 @@ layout: default title: Uploading trained models nav_order: 60 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/ltr/working-with-features.md b/_search-plugins/ltr/working-with-features.md index 00ebd908d7e..f0bf6110fd3 100644 --- a/_search-plugins/ltr/working-with-features.md +++ b/_search-plugins/ltr/working-with-features.md @@ -3,6 +3,7 @@ layout: default title: Working with features nav_order: 30 parent: Learning to Rank +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/querqy/index.md b/_search-plugins/querqy/index.md index 72c21a2b6a3..442923c6aa5 100644 --- a/_search-plugins/querqy/index.md +++ b/_search-plugins/querqy/index.md @@ -2,11 +2,11 @@ layout: default title: Querqy parent: Query rewriting -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false redirect_from: - /search-plugins/querqy/ -nav_order: 210 +nav_order: 60 --- # Querqy diff --git a/_search-plugins/search-pipelines/index.md b/_search-plugins/search-pipelines/index.md index c4b9163ae5c..598d6ad1725 100644 --- a/_search-plugins/search-pipelines/index.md +++ b/_search-plugins/search-pipelines/index.md @@ -72,6 +72,10 @@ Alternatively, you can use a temporary pipeline with a request or set a default To learn about retrieving details for an existing search pipeline, see [Retrieving search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/retrieving-search-pipeline/). +For information about troubleshooting search pipelines, see [Debugging search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/debugging-search-pipeline/). + +To delete an existing search pipeline, see [Deleting search pipelines]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/deleting-search-pipeline/). + ## Manual and automatic processor creation Search processors can be created manually or automatically: diff --git a/_search-plugins/search-relevance/compare-query-sets.md b/_search-plugins/search-relevance/compare-query-sets.md index 8f45dfc333d..a6e028f3dd0 100644 --- a/_search-plugins/search-relevance/compare-query-sets.md +++ b/_search-plugins/search-relevance/compare-query-sets.md @@ -3,7 +3,7 @@ layout: default title: Comparing query sets nav_order: 12 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/compare-search-results.md b/_search-plugins/search-relevance/compare-search-results.md index 91a19a9cb9a..874650a50e2 100644 --- a/_search-plugins/search-relevance/compare-search-results.md +++ b/_search-plugins/search-relevance/compare-search-results.md @@ -3,7 +3,7 @@ layout: default title: Comparing single queries nav_order: 10 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/comparing-search-results.md b/_search-plugins/search-relevance/comparing-search-results.md index 920c91686b5..4e68a202d53 100644 --- a/_search-plugins/search-relevance/comparing-search-results.md +++ b/_search-plugins/search-relevance/comparing-search-results.md @@ -3,7 +3,7 @@ layout: default title: Comparing search results nav_order: 11 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality --- # Comparing search results diff --git a/_search-plugins/search-relevance/evaluate-search-quality.md b/_search-plugins/search-relevance/evaluate-search-quality.md index 6bb6168c374..828128e3531 100644 --- a/_search-plugins/search-relevance/evaluate-search-quality.md +++ b/_search-plugins/search-relevance/evaluate-search-quality.md @@ -3,7 +3,7 @@ layout: default title: Evaluating search quality nav_order: 50 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/experiments.md b/_search-plugins/search-relevance/experiments.md index 9a10de30ea3..5f84dbf0031 100644 --- a/_search-plugins/search-relevance/experiments.md +++ b/_search-plugins/search-relevance/experiments.md @@ -3,7 +3,7 @@ layout: default title: Experiments nav_order: 9 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false has_toc: false --- diff --git a/_search-plugins/search-relevance/explore-experiment-results.md b/_search-plugins/search-relevance/explore-experiment-results.md index b4c86782c01..bb9efd8f818 100644 --- a/_search-plugins/search-relevance/explore-experiment-results.md +++ b/_search-plugins/search-relevance/explore-experiment-results.md @@ -3,7 +3,7 @@ layout: default title: Exploring search evaluation results nav_order: 65 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/index.md b/_search-plugins/search-relevance/index.md index 9133ba08dc2..d503ca621dd 100644 --- a/_search-plugins/search-relevance/index.md +++ b/_search-plugins/search-relevance/index.md @@ -1,21 +1,41 @@ --- layout: default -title: Search relevance -nav_order: 80 +title: Optimizing search quality +nav_order: 75 has_children: true has_toc: false redirect_from: - /search-plugins/search-relevance/ --- -# Search relevance +# Optimizing search quality -Search relevance evaluates the accuracy of the search results returned by a query. The higher the relevance, the better the search engine. +_Search quality_ refers to how well search results match user intent and expectations. OpenSearch provides several features and tools to help you measure, analyze, and improve the quality of your search results. -OpenSearch provides the following search relevance features: +OpenSearch offers the following features to help you optimize search quality: -- [Search Relevance Workbench]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/using-search-relevance-workbench/): A suite of tools that support search quality improvements through experimentation. +- **[User Behavior Insights (UBI)]({{site.url}}{{site.baseurl}}/search-plugins/ubi/)**: Capture and analyze user behavior data to understand how users interact with search results and identify areas for improvement. -- [Reranking search results]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/reranking-search-results/) using a cross-encoder reranker. +- **[Search Relevance Workbench]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/using-search-relevance-workbench/)**: A comprehensive suite of tools for experimenting with and improving search relevance through query comparison, result evaluation, and A/B testing. -- [Query rewriting]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/query-rewriting/). +- **[Query rewriting]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/query-rewriting/)**: Transform user queries to improve search accuracy and handle synonyms, misspellings, and other query variations. + +- **[Learning to Rank (LTR)]({{site.url}}{{site.baseurl}}/search-plugins/ltr/)**: Use machine learning models trained on behavioral data to improve the ranking of search results. + +- **[Reranking search results]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/reranking-search-results/)**: Apply machine learning models to reorder search results for improved relevance. + +## Search quality workflow + +A typical search quality improvement workflow involves: + +1. **Data collection**: Use UBI to capture user behavior and interaction data. +2. **Analysis**: Analyze user behavior patterns to identify search quality issues. +3. **Experimentation**: Use the Search Relevance Workbench to test different approaches. +4. **Model training**: Train LTR models using behavioral data to improve ranking. +5. **Query enhancement**: Apply query rewriting rules to improve query understanding. +6. **Reranking**: Apply ML-based reranking to further optimize results. +7. **Evaluation**: Continuously monitor and evaluate search performance. + +## Related documentation + +- [Reranking search results tutorials]({{site.url}}{{site.baseurl}}/tutorials/reranking/): Learn how to implement search result reranking using various machine learning models and platforms. \ No newline at end of file diff --git a/_search-plugins/search-relevance/judgments.md b/_search-plugins/search-relevance/judgments.md index 2ae8bda8fa6..77f55a7db4b 100644 --- a/_search-plugins/search-relevance/judgments.md +++ b/_search-plugins/search-relevance/judgments.md @@ -3,7 +3,7 @@ layout: default title: Judgments nav_order: 8 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/optimize-hybrid-search.md b/_search-plugins/search-relevance/optimize-hybrid-search.md index 3519712c715..fde4aa2ecf6 100644 --- a/_search-plugins/search-relevance/optimize-hybrid-search.md +++ b/_search-plugins/search-relevance/optimize-hybrid-search.md @@ -3,7 +3,7 @@ layout: default title: Optimizing hybrid search nav_order: 60 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/query-rewriting.md b/_search-plugins/search-relevance/query-rewriting.md index e2fc68b834a..d02d0a4e091 100644 --- a/_search-plugins/search-relevance/query-rewriting.md +++ b/_search-plugins/search-relevance/query-rewriting.md @@ -1,9 +1,9 @@ --- layout: default title: Query rewriting -parent: Search relevance +parent: Optimizing search quality has_children: true -nav_order: 70 +nav_order: 30 has_toc: false --- @@ -13,6 +13,6 @@ Query rewriting is the process of transforming or modifying a user query before You can perform query rewriting in OpenSearch using the following features: -- [Template queries]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/template-query/) +- [Template queries]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/template-query/): Create queries with dynamic placeholders that are resolved during query execution, useful for machine learning inference and runtime parameter generation. -- [Querqy]({{site.url}}{{site.baseurl}}/search-plugins/querqy/) +- [Querqy]({{site.url}}{{site.baseurl}}/search-plugins/querqy/): A community plugin for advanced query rewriting with rules for boosting, burying, filtering, and redirecting search results. diff --git a/_search-plugins/search-relevance/query-sets.md b/_search-plugins/search-relevance/query-sets.md index 0dead97a169..aebefc6a076 100644 --- a/_search-plugins/search-relevance/query-sets.md +++ b/_search-plugins/search-relevance/query-sets.md @@ -3,7 +3,7 @@ layout: default title: Query sets nav_order: 3 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/regularly-scheduled-experiments.md b/_search-plugins/search-relevance/regularly-scheduled-experiments.md index 00b2e4dd2dc..284168965ab 100644 --- a/_search-plugins/search-relevance/regularly-scheduled-experiments.md +++ b/_search-plugins/search-relevance/regularly-scheduled-experiments.md @@ -3,7 +3,7 @@ layout: default title: Monitoring search quality nav_order: 70 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/rerank-by-field-cross-encoder.md b/_search-plugins/search-relevance/rerank-by-field-cross-encoder.md index 7f306894912..ee6b55566b9 100644 --- a/_search-plugins/search-relevance/rerank-by-field-cross-encoder.md +++ b/_search-plugins/search-relevance/rerank-by-field-cross-encoder.md @@ -2,7 +2,7 @@ layout: default title: Reranking by a field using a cross-encoder parent: Reranking search results -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false nav_order: 30 --- diff --git a/_search-plugins/search-relevance/rerank-by-field-late-interaction.md b/_search-plugins/search-relevance/rerank-by-field-late-interaction.md index c97a0761fa9..c0090842040 100644 --- a/_search-plugins/search-relevance/rerank-by-field-late-interaction.md +++ b/_search-plugins/search-relevance/rerank-by-field-late-interaction.md @@ -2,7 +2,7 @@ layout: default title: Reranking by a field using a late interaction model parent: Reranking search results -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false nav_order: 40 --- diff --git a/_search-plugins/search-relevance/rerank-by-field.md b/_search-plugins/search-relevance/rerank-by-field.md index e6f65a4d257..9aacdcc7abf 100644 --- a/_search-plugins/search-relevance/rerank-by-field.md +++ b/_search-plugins/search-relevance/rerank-by-field.md @@ -2,7 +2,7 @@ layout: default title: Reranking by a field parent: Reranking search results -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false nav_order: 20 --- diff --git a/_search-plugins/search-relevance/rerank-cross-encoder.md b/_search-plugins/search-relevance/rerank-cross-encoder.md index 64f93c886c5..55e5e3ff874 100644 --- a/_search-plugins/search-relevance/rerank-cross-encoder.md +++ b/_search-plugins/search-relevance/rerank-cross-encoder.md @@ -2,7 +2,7 @@ layout: default title: Reranking using a cross-encoder model parent: Reranking search results -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false nav_order: 10 --- diff --git a/_search-plugins/search-relevance/reranking-search-results.md b/_search-plugins/search-relevance/reranking-search-results.md index 4e6269daad4..7d886f77a4b 100644 --- a/_search-plugins/search-relevance/reranking-search-results.md +++ b/_search-plugins/search-relevance/reranking-search-results.md @@ -1,9 +1,9 @@ --- layout: default title: Reranking search results -parent: Search relevance +parent: Optimizing search quality has_children: true -nav_order: 65 +nav_order: 50 --- # Reranking search results diff --git a/_search-plugins/search-relevance/search-configurations.md b/_search-plugins/search-relevance/search-configurations.md index fb5bfe89fee..627e838395a 100644 --- a/_search-plugins/search-relevance/search-configurations.md +++ b/_search-plugins/search-relevance/search-configurations.md @@ -3,7 +3,7 @@ layout: default title: Search configurations nav_order: 5 parent: Search Relevance Workbench -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/stats-api.md b/_search-plugins/search-relevance/stats-api.md index d5bd2861873..a6cf2116195 100644 --- a/_search-plugins/search-relevance/stats-api.md +++ b/_search-plugins/search-relevance/stats-api.md @@ -3,7 +3,7 @@ layout: default title: Search Relevance Stats API nav_order: 65 parent: Compare Search Results -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false --- diff --git a/_search-plugins/search-relevance/template-query.md b/_search-plugins/search-relevance/template-query.md index a2315aaf019..0bbf81f8629 100644 --- a/_search-plugins/search-relevance/template-query.md +++ b/_search-plugins/search-relevance/template-query.md @@ -3,7 +3,7 @@ layout: default title: Template queries nav_order: 70 parent: Query rewriting -grand_parent: Search relevance +grand_parent: Optimizing search quality has_children: false has_toc: false --- diff --git a/_search-plugins/search-relevance/using-search-relevance-workbench.md b/_search-plugins/search-relevance/using-search-relevance-workbench.md index 4fe8e7a3afe..3f74fbba384 100644 --- a/_search-plugins/search-relevance/using-search-relevance-workbench.md +++ b/_search-plugins/search-relevance/using-search-relevance-workbench.md @@ -1,8 +1,8 @@ --- layout: default title: Search Relevance Workbench -nav_order: 10 -parent: Search relevance +nav_order: 20 +parent: Optimizing search quality has_children: true --- diff --git a/_search-plugins/searching-data/autocomplete.md b/_search-plugins/searching-data/autocomplete.md index 742810cbea1..45508b4ab6a 100644 --- a/_search-plugins/searching-data/autocomplete.md +++ b/_search-plugins/searching-data/autocomplete.md @@ -1,8 +1,8 @@ --- layout: default title: Autocomplete -parent: Search options -nav_order: 60 +parent: Customizing search results +nav_order: 80 redirect_from: - /opensearch/search/autocomplete/ --- diff --git a/_search-plugins/searching-data/collapse-search.md b/_search-plugins/searching-data/collapse-search.md index 175608ef89f..4a724dc1606 100644 --- a/_search-plugins/searching-data/collapse-search.md +++ b/_search-plugins/searching-data/collapse-search.md @@ -1,7 +1,7 @@ --- layout: default title: Collapse search results -parent: Search options +parent: Customizing search results nav_order: 40 redirect_from: - /search-plugins/collapse-search/ diff --git a/_search-plugins/searching-data/did-you-mean.md b/_search-plugins/searching-data/did-you-mean.md index bfa6e80df2e..ea10853d8e5 100644 --- a/_search-plugins/searching-data/did-you-mean.md +++ b/_search-plugins/searching-data/did-you-mean.md @@ -1,8 +1,8 @@ --- layout: default title: Did-you-mean -parent: Search options -nav_order: 70 +parent: Customizing search results +nav_order: 90 redirect_from: - /opensearch/search/did-you-mean/ --- diff --git a/_search-plugins/searching-data/highlight.md b/_search-plugins/searching-data/highlight.md index bc4c0de9e5b..e278a491014 100644 --- a/_search-plugins/searching-data/highlight.md +++ b/_search-plugins/searching-data/highlight.md @@ -1,8 +1,8 @@ --- layout: default title: Highlight query matches -parent: Search options -nav_order: 50 +parent: Customizing search results +nav_order: 70 redirect_from: - /opensearch/search/highlight/ --- diff --git a/_search-plugins/searching-data/index.md b/_search-plugins/searching-data/index.md index 5704927f709..7132de603a0 100644 --- a/_search-plugins/searching-data/index.md +++ b/_search-plugins/searching-data/index.md @@ -1,27 +1,57 @@ --- layout: default -title: Search options -nav_order: 5 +title: Customizing search results +nav_order: 15 has_children: true has_toc: false redirect_from: - /opensearch/ux/ - /search-plugins/searching-data/ + - /search-plugins/search-options/ --- -# Search options - -What users expect from search engines has evolved over the years. Just returning relevant results quickly is no longer enough for most users. Now users seek methods that allow them to get even more relevant results, to sort and organize results, and to highlight their queries. OpenSearch includes many search options, described in the following table, that enhance the search experience. - -Option | Description -:--- | :--- -[Autocomplete functionality]({{site.url}}{{site.baseurl}}/opensearch/search/autocomplete/) | Suggest phrases as the user types. -[Did-you-mean functionality]({{site.url}}{{site.baseurl}}/opensearch/search/did-you-mean/) | Check spelling of phrases as the user types. -[Paginate results]({{site.url}}{{site.baseurl}}/opensearch/search/paginate/) | Rather than a single, long list, separate search results into pages. -[Point in Time]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/point-in-time/) | Run different queries against a dataset that is fixed in time. -[Sort results]({{site.url}}{{site.baseurl}}/opensearch/search/sort/) | Allow sorting of results by different criteria. -[Filter results]({{site.url}}{{site.baseurl}}/search-plugins/filter-search/) | Filter search results. -[Collapse results]({{site.url}}{{site.baseurl}}/search-plugins/collapse-search/) | Collapse search results. -[Highlight query matches]({{site.url}}{{site.baseurl}}/opensearch/search/highlight/) | Highlight the search term in the results. -[Retrieve inner hits]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/inner-hits/) | Retrieve underlying hits in nested and parent-join objects. -[Retrieve specific fields]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/retrieve-specific-fields/) | Retrieve only the specific fields +# Customizing search results + +OpenSearch provides fundamental search capabilities and options that form the foundation of most search applications. These features work with all search types including keyword, vector, and AI search. + +## Pagination + +Control how search results are accessed across large result sets: + +- [Paginate results]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/paginate/): Rather than a single, long list, separate search results into pages. +- [Point in Time]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/point-in-time/): Run different queries against a dataset that is fixed in time. + +## Sort and filter + +Apply the most common result refinements: + +- [Sort results]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/sort/): Allow sorting of results by different criteria. +- [Filter results]({{site.url}}{{site.baseurl}}/search-plugins/filter-search/): Filter search results based on specific criteria. + +## Result processing + +Control what data is returned and how it's organized: + +- [Collapse results]({{site.url}}{{site.baseurl}}/search-plugins/collapse-search/): Collapse search results to show only unique values for a specified field. +- [Retrieve specific fields]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/retrieve-specific-fields/): Retrieve only the specific fields you need. +- [Retrieve inner hits]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/inner-hits/): Retrieve underlying hits in nested and parent-join objects. + +## Result formatting + +Customize how search results are visually presented: + +- [Highlight query matches]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/highlight/): Highlight the search term in the results. + +## Query enhancement + +Enhance user queries in real-time to improve search accuracy and user experience: + +- [Autocomplete functionality]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/autocomplete/): Suggest phrases as the user types. +- [Did-you-mean functionality]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/did-you-mean/): Check spelling of phrases as the user types. + +## Query enhancement + +Enhance user queries in real-time to improve search accuracy and user experience: + +- [Autocomplete functionality]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/autocomplete/): Suggest phrases as the user types. +- [Did-you-mean functionality]({{site.url}}{{site.baseurl}}/search-plugins/searching-data/did-you-mean/): Check spelling of phrases as the user types. diff --git a/_search-plugins/searching-data/inner-hits.md b/_search-plugins/searching-data/inner-hits.md index a0a6f9f9188..79433246703 100644 --- a/_search-plugins/searching-data/inner-hits.md +++ b/_search-plugins/searching-data/inner-hits.md @@ -1,9 +1,9 @@ --- layout: default title: Retrieve inner hits -parent: Search options +parent: Customizing search results has_children: false -nav_order: 75 +nav_order: 60 --- # Retrieve inner hits diff --git a/_search-plugins/searching-data/paginate.md b/_search-plugins/searching-data/paginate.md index 397dde39c76..540ff279b39 100644 --- a/_search-plugins/searching-data/paginate.md +++ b/_search-plugins/searching-data/paginate.md @@ -1,7 +1,7 @@ --- layout: default title: Paginate results -parent: Search options +parent: Customizing search results nav_order: 10 redirect_from: - /opensearch/search/paginate/ diff --git a/_search-plugins/searching-data/point-in-time.md b/_search-plugins/searching-data/point-in-time.md index 1ceba4c30e6..167db1fedeb 100644 --- a/_search-plugins/searching-data/point-in-time.md +++ b/_search-plugins/searching-data/point-in-time.md @@ -1,7 +1,7 @@ --- layout: default title: Point in Time -parent: Search options +parent: Customizing search results nav_order: 20 redirect_from: - /opensearch/point-in-time/ diff --git a/_search-plugins/searching-data/retrieve-specific-fields.md b/_search-plugins/searching-data/retrieve-specific-fields.md index 046a903dd68..4f1c758fce9 100644 --- a/_search-plugins/searching-data/retrieve-specific-fields.md +++ b/_search-plugins/searching-data/retrieve-specific-fields.md @@ -1,8 +1,8 @@ --- layout: default -parent: Search options +parent: Customizing search results title: Retrieve specific fields -nav_order: 80 +nav_order: 50 --- # Retrieve specific fields diff --git a/_search-plugins/searching-data/search-shard-routing.md b/_search-plugins/searching-data/search-shard-routing.md index 65da7581d66..9b32eec13ed 100644 --- a/_search-plugins/searching-data/search-shard-routing.md +++ b/_search-plugins/searching-data/search-shard-routing.md @@ -1,8 +1,8 @@ --- layout: default -parent: Search options +parent: Improving search performance title: Search shard routing -nav_order: 90 +nav_order: 30 --- # Search shard routing diff --git a/_search-plugins/searching-data/sort.md b/_search-plugins/searching-data/sort.md index b6c4c79bb96..8242f976946 100644 --- a/_search-plugins/searching-data/sort.md +++ b/_search-plugins/searching-data/sort.md @@ -1,7 +1,7 @@ --- layout: default title: Sort results -parent: Search options +parent: Customizing search results nav_order: 30 redirect_from: - /opensearch/search/sort/ diff --git a/_search-plugins/star-tree-index.md b/_search-plugins/star-tree-index.md index cf7a450a968..264a0dc7eac 100644 --- a/_search-plugins/star-tree-index.md +++ b/_search-plugins/star-tree-index.md @@ -2,7 +2,7 @@ layout: default title: Star-tree index parent: Improving search performance -nav_order: 54 +nav_order: 50 --- # Star-tree index diff --git a/_search-plugins/ubi/dsl-queries.md b/_search-plugins/ubi/dsl-queries.md index b2b997e83a3..9c4680bd4bf 100644 --- a/_search-plugins/ubi/dsl-queries.md +++ b/_search-plugins/ubi/dsl-queries.md @@ -2,6 +2,7 @@ layout: default title: Example UBI query DSL queries parent: User Behavior Insights +grand_parent: Optimizing search quality has_children: false nav_order: 15 --- diff --git a/_search-plugins/ubi/index.md b/_search-plugins/ubi/index.md index 9e65e2f766e..1b4da8db670 100644 --- a/_search-plugins/ubi/index.md +++ b/_search-plugins/ubi/index.md @@ -1,8 +1,9 @@ --- layout: default title: User Behavior Insights +parent: Optimizing search quality has_children: true -nav_order: 90 +nav_order: 10 redirect_from: - /search-plugins/ubi/ --- diff --git a/_search-plugins/ubi/schemas.md b/_search-plugins/ubi/schemas.md index 6337ddcdc37..669e6138eae 100644 --- a/_search-plugins/ubi/schemas.md +++ b/_search-plugins/ubi/schemas.md @@ -2,6 +2,7 @@ layout: default title: UBI index schemas parent: User Behavior Insights +grand_parent: Optimizing search quality has_children: false nav_order: 5 --- diff --git a/_search-plugins/ubi/sql-queries.md b/_search-plugins/ubi/sql-queries.md index 0c7423809a4..afd19d18796 100644 --- a/_search-plugins/ubi/sql-queries.md +++ b/_search-plugins/ubi/sql-queries.md @@ -2,6 +2,7 @@ layout: default title: Sample UBI SQL queries parent: User Behavior Insights +grand_parent: Optimizing search quality has_children: false nav_order: 20 --- diff --git a/_search-plugins/ubi/ubi-aws-managed-services-tutorial.md b/_search-plugins/ubi/ubi-aws-managed-services-tutorial.md index 8c13765543b..bff0288114e 100644 --- a/_search-plugins/ubi/ubi-aws-managed-services-tutorial.md +++ b/_search-plugins/ubi/ubi-aws-managed-services-tutorial.md @@ -2,6 +2,7 @@ layout: default title: Collecting UBI-formatted data in Amazon OpenSearch Service parent: User Behavior Insights +grand_parent: Optimizing search quality has_children: false nav_order: 30 --- diff --git a/_search-plugins/ubi/ubi-dashboard-tutorial.md b/_search-plugins/ubi/ubi-dashboard-tutorial.md index aa5b304cb96..3ce0311f20a 100644 --- a/_search-plugins/ubi/ubi-dashboard-tutorial.md +++ b/_search-plugins/ubi/ubi-dashboard-tutorial.md @@ -2,6 +2,7 @@ layout: default title: UBI dashboard tutorial parent: User Behavior Insights +grand_parent: Optimizing search quality has_children: false nav_order: 25 --- diff --git a/_search-plugins/ubi/ubi-javascript-collector.md b/_search-plugins/ubi/ubi-javascript-collector.md index 042d2d99a1c..47cdb10f7de 100644 --- a/_search-plugins/ubi/ubi-javascript-collector.md +++ b/_search-plugins/ubi/ubi-javascript-collector.md @@ -2,6 +2,7 @@ layout: default title: UBI JavaScript Collector parent: User Behavior Insights +grand_parent: Optimizing search quality has_children: false nav_order: 10 --- diff --git a/_tutorials/reranking/index.md b/_tutorials/reranking/index.md index b2bae714186..c94292a7a5a 100644 --- a/_tutorials/reranking/index.md +++ b/_tutorials/reranking/index.md @@ -50,4 +50,8 @@ reranking: The following machine learning (ML) tutorials show you how to implement search result reranking. For more information about reranking, see [Reranking search results]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/reranking-search-results/). -{% include cards.html cards=page.reranking %} \ No newline at end of file +{% include cards.html cards=page.reranking %} + +## Related documentation + +- Explore the broader [Search quality]({{site.url}}{{site.baseurl}}/search-plugins/search-relevance/) toolkit, which includes User Behavior Insights, Learning to Rank, Search Relevance Workbench, and query rewriting features. \ No newline at end of file