Docs Menu
Docs Home
/ / /
Java Sync Driver

Atlas Search

In this guide, you can learn how to use the Java driver to run Atlas Search queries on a collection. Atlas Search enables you to perform full-text searches on collections hosted on MongoDB Atlas. Atlas Search indexes specify the behavior of the search and which fields to index.

The examples in this guide use the movies collection in the sample_mflix database from the Atlas sample datasets. To learn how to create a free MongoDB Atlas cluster and load the sample datasets, see the Get Started with Atlas guide. To learn more about aggregation operations and builders, see the Aggregation guide.

This section shows how to create an aggregation pipeline to run an Atlas Search query on a collection. You can use the Aggregates.search() builder method to create a $search pipeline stage, which specifies the search criteria. Then, call the aggregate() method and pass your pipeline as a parameter.

Note

Only Available on Atlas for MongoDB v4.2 and later

This aggregation pipeline operator is only available for collections hosted on MongoDB Atlas clusters running v4.2 or later that are covered by an Atlas search index. Learn more about the required setup and the functionality of this operator from the Atlas Search documentation.

Before running an Atlas Search query, you must create an Atlas Search index on your collection. To learn how to programmatically create an Atlas Search index, see the Atlas Search and Vector Search Indexes section in the Indexes guide.

This example runs an Atlas Search query by performing the following actions:

  • Constructs a $search stage by using the Aggregates.search() builder method, instructing the driver to query for documents in which the title field contains the word "Alabama"

  • Constructs a $project stage by using the Aggregates.project() builder method, instructing the driver to include the title field in the query results

  • Passes the pipeline stages to the aggregate() method and prints the results

collection.aggregate(
Arrays.asList(
Aggregates.search(SearchOperator.text(
SearchPath.fieldPath("title"), "Alabama")),
Aggregates.project(Projections.include("title"))
)
).forEach(doc -> System.out.println(doc.toJson()));
{"_id": {"$oid": "..."}, "title": "Alabama Moon"}
{"_id": {"$oid": "..."}, "title": "Crazy in Alabama"}
{"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}

Tip

Java Driver Atlas Search Examples

To view more examples that use the Java driver to perform Atlas Search queries, see Atlas Search Tutorials in the Atlas documentation.

Use the searchMeta() method to create a $searchMeta pipeline stage, which returns only the metadata from of the Atlas full-text search results.

Tip

Only Available on Atlas for MongoDB v4.4.11 and later

This aggregation pipeline operator is available only on MongoDB Atlas clusters running v4.4.11 and later. For a detailed list of version availability, see the MongoDB Atlas documentation on $searchMeta.

The following example shows the near metadata for an Atlas search aggregation stage:

Aggregates.searchMeta(
SearchOperator.near(2010, 1, fieldPath("year")));

To learn more about this helper method, see the searchMeta() API documentation.

To learn more about Atlas Search, see Atlas Search in the Atlas documentation.

To learn more about the methods mentioned in this guide, see the following API documentation:

Back

Run a Command

On this page