MongoDB 索引与搜索

MongoDB 索引与搜索

MongoDB Atlas 提供了一个全文搜索引擎,可用于搜索集合中的文档。

Atlas Search 由 Apache Lucene 提供支持。


创建一个索引

我们将使用 Atlas 面板根据我们在聚合部分加载的样本数据在 "sample_mflix" 数据库上创建索引。

  1. 在 Atlas 面板中,单击您的集群名称,然后单击 "Search" 搜索选项卡。
  2. 单击 "Create Search Index" 创建搜索索引按钮。
  3. 使用 Visual Editor 视觉编辑器,然后单击 "下一步"。
  4. 命名索引,选择要索引的数据库和集合,然后单击 "下一步"。
  5. 如果将索引命名为 "default",则不必在 $search 管道阶段指定索引名称。
  6. 选择 sample_mflix 数据库和电影集合。
  7. 单击 "Create Search Index" 创建搜索索引,然后等待索引完成。

运行一个搜索

要使用我们的搜索索引,我们将在聚合管道中使用 $search 运算符。

实例
  1. db.movies.aggregate([
  2. {
  3. $search: {
  4. index: "default", // optional unless you named your index something other than "default"
  5. text: {
  6. query: "star wars",
  7. path: "title"
  8. },
  9. },
  10. },
  11. {
  12. $project: {
  13. title: 1,
  14. year: 1,
  15. }
  16. }
  17. ])

此聚合管道的第一阶段将返回电影集合中标题字段中包含 "star" 明星或 "wars" 战争一词的所有文档。

第二阶段将投影每个文档的 title 标题和 year 年份字段。