You're viewing version 2.16 of the OpenSearch documentation. This version is no longer maintained. For the latest version, see the current documentation. For information about OpenSearch version maintenance, see Release Schedule and Maintenance Policy.
Search
OpenSearch provides many features for customizing your search use cases and improving search relevance.
Search methods
OpenSearch supports the following search methods.
Traditional lexical search
OpenSearch supports keyword (BM25) search, which searches the document corpus for words that appear in the query.
ML-powered search
OpenSearch supports the following machine learning (ML)-powered search methods:
-
Vector search
- k-NN search: Searches for the k-nearest neighbors to a search term across an index of vectors.
-
Neural search: Neural search facilitates generating vector embeddings at ingestion time and searching them at search time. Neural search lets you integrate ML models into your search and serves as a framework for implementing other search methods. The following search methods are built on top of neural search:
-
Semantic search: Considers the meaning of the words in the search context. Uses dense retrieval based on text embedding models to search text data.
-
Multimodal search: Uses multimodal embedding models to search text and image data.
-
Neural sparse search: Uses sparse retrieval based on sparse embedding models to search text data.
-
Hybrid search: Combines traditional search and vector search to improve search relevance.
-
Conversational search: Implements a retrieval-augmented generative search.
-
Query languages
In OpenSearch, you can use the following query languages to search your data:
-
Query domain-specific language (DSL): The primary OpenSearch query language that supports creating complex, fully customizable queries.
-
Query string query language: A scaled-down query language that you can use in a query parameter of a search request or in OpenSearch Dashboards.
-
SQL: A traditional query language that bridges the gap between traditional relational database concepts and the flexibility of OpenSearch’s document-oriented data storage.
-
Piped Processing Language (PPL): The primary language used with observability in OpenSearch. PPL uses a pipe syntax that chains commands into a query.
-
Dashboards Query Language (DQL): A simple text-based query language for filtering data in OpenSearch Dashboards.
Search performance
OpenSearch offers several ways to improve search performance:
-
Asynchronous search: Runs resource-intensive queries asynchronously.
-
Concurrent segment search: Searches segments concurrently.
Search relevance
OpenSearch provides the following search relevance features:
-
Compare Search Results: A search comparison tool in OpenSearch Dashboards that you can use to compare results from two queries side by side.
-
Querqy: Offers query rewriting capability.
-
User Behavior Insights: Links user behavior to user queries to improve search quality.
Search results
OpenSearch supports the following commonly used operations on search results:
Search pipelines
You can process search queries and search results with search pipelines.