MongoDB 4.2 新特性解读

MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读。

 

Full Text Search 

 

MongoDB 4.2 之前,全文搜索(Full Text Search)的能力是靠 Text Index 来支持的,在 MongoDB-4.2 里,MongoDB 直接与 Lucene 等引擎整合,在 Atlas 服务里提供全文建索的能力

 

MongoDB FTS 原理

1. 用户可以在 Atlas 上,对集合开启全文索引,后台会开起 Lucene 索引引擎(索引引擎、查询引擎均可配置),对存量数据建立索引。
2. 对于开启全文建索的集合,新写入到 MongoDB 的数据, 后台的服务会通过 Change Stream 的方式订阅,并更新到 Lucene 索引引擎里。
3. 索引的查询直接以 MongoDB Query 的方式提供,Mongod 收到请求会把请求转发到 Lucene 引擎,收到建索结果后回复给客户端。


Full Text Search 示例 

下面是一个 Full Text Search 使用的简单示例,整个使用体验非常简单,除了需要在 Atlas 控制台上建索引,其他跟正常使用 MongoDB 毫无差别,随着这块能力的完善,能覆盖很多 Elastic Search 的场景。

Step1: 准备数据

MongoDB Enterprise > db.fruit.find(){ "_id" : 1, "type" : "apple", "description" : 
"Apples come in several varieties, including Fuji, Granny Smith, and Honeycrisp." }{ "_id" : 2, "type" : "banana", "description" :
 "Bananas are usually sold in bunches of five or six." }

Step2: Atlas 上创建 FTS 索引

Step3: 使用 MongoDB 客户端做搜索,支持 Wildcard、Prefix 等多种搜索能力

// 简单查询
db.fruit.aggregate([{
  $searchBeta: {
  "term": {
  "query": "Smith","path": "description"}}}])</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值