@@ -18,4 +18,90 @@ Atlas Search
1818 :depth: 2
1919 :class: singlecol
2020
21- See :atlas:`Atlas Search </atlas-search/>` in the MongoDB Atlas documentation.
21+ Overview
22+ --------
23+
24+ In this guide, you can learn how to use the {+driver-short+} to
25+ run :atlas:`Atlas Search </atlas-search/>` queries on a collection.
26+ Atlas Search enables you to perform full-text searches on collections
27+ hosted on MongoDB Atlas. Atlas Search indexes specify the behavior of the
28+ search and which fields to index.
29+
30+ Sample Data
31+ ~~~~~~~~~~~
32+
33+ The example in this guide uses the ``movies`` collection in the ``sample_mflix``
34+ database from the :atlas:`Atlas sample datasets </sample-data>`. To learn how to
35+ create a free MongoDB Atlas cluster and load the sample datasets, see the
36+ :atlas:`Get Started with Atlas </getting-started>` guide.
37+
38+ Run an Atlas Search Query
39+ -------------------------
40+
41+ This section shows how to create an aggregation pipeline to run an
42+ Atlas Search query on a collection. You can use the ``Aggregates.search()`` builder
43+ method to create a ``$search`` pipeline stage, which specifies the search
44+ criteria. Then, call the ``aggregate()`` method and pass your pipeline as a parameter.
45+
46+ .. tip::
47+
48+ To learn more about aggregation operations and builders, see the :ref:`java-aggregation`
49+ guide.
50+
51+ Before running an Atlas Search query, you must create an Atlas Search index
52+ on your collection. To learn how to programmatically create an Atlas Search
53+ index, see the :ref:`java-search-indexes` section in the Indexes guide.
54+
55+ Atlas Search Example
56+ ~~~~~~~~~~~~~~~~~~~~
57+
58+ This example runs an Atlas Search query by performing the
59+ following actions:
60+
61+ - Constructs a ``$search`` stage by using the ``Aggregates.search()`` builder method,
62+ instructing the driver to query for documents in which the ``title``
63+ field contains the word ``"Alabama"``
64+
65+ - Constructs a ``$project`` stage by using the ``Aggregates.project()`` builder method,
66+ instructing the driver to include the ``title`` field in the query results
67+
68+ - Passes the pipeline stages to the ``aggregate()`` method and prints the results
69+
70+ .. io-code-block::
71+ :copyable:
72+
73+ .. input:: /includes/AtlasSearch.java
74+ :start-after: begin-atlas-search
75+ :end-before: end-atlas-search
76+ :language: java
77+ :dedent:
78+
79+ .. output::
80+ :language: console
81+ :visible: false
82+
83+ {"_id": {"$oid": "..."}, "title": "Alabama Moon"}
84+ {"_id": {"$oid": "..."}, "title": "Crazy in Alabama"}
85+ {"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}
86+
87+ .. tip:: Java Driver Atlas Search Examples
88+
89+ To view more examples that use the {+driver-short+} to perform Atlas
90+ Search queries, see :atlas:`Atlas Search Tutorials </atlas-search/tutorials/>`
91+ in the Atlas documentation.
92+
93+ Additional Information
94+ ----------------------
95+
96+ To learn more about Atlas Search, see :atlas:`Atlas Search </atlas-search/>`
97+ in the Atlas documentation.
98+
99+ API Documentation
100+ ~~~~~~~~~~~~~~~~~
101+
102+ To learn more about the methods mentioned in this guide, see
103+ the following API documentation:
104+
105+ - `MongoCollection.aggregate() <{+api+}/apidocs/mongodb-driver-sync/com/mongodb/client/MongoCollection.html#aggregate(java.util.List)>`__
106+ - `Aggregates.search() <{+api+}/apidocs/mongodb-driver-core/com/mongodb/client/model/Aggregates.html#search(com.mongodb.client.model.search.SearchCollector)>`__
107+ - `Aggregates.project() <{+api+}/apidocs/mongodb-driver-core/com/mongodb/client/model/Aggregates.html#project(org.bson.conversions.Bson)>`__
0 commit comments