前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB 中文的全文索引

MongoDB 中文的全文索引

作者头像
地球流浪猫
发布2018-08-02 15:34:31
3K0
发布2018-08-02 15:34:31
举报
文章被收录于专栏:流浪猫的golang

MongoDB 从3.2 版本以后添加了对中文索引的支持: 官网链接:https://docs.mongodb.com/manual/reference/text-search-languages/ 下面就举例来看一下MongoDB 的中文索引是怎么样的? 创建一个集合textIndexTest: 插入下面四条数据:

代码语言:javascript
复制
db.textIndexTest.insert({author:"杜甫",title:"绝句",article:"两个黄鹂鸣翠柳,   一行白鹭上青天。窗含西岭千秋雪,门泊东吴万里船。"})
代码语言:javascript
复制
db.textIndexTest.insert({author:"李白",title:"静夜思",article:"床前明月光,疑是地上霜。 举头望明月,低头思故乡。"})
代码语言:javascript
复制
db.textIndexTest.insert({author:"张 王",title:"你好",article:"测试数据"})
代码语言:javascript
复制
db.textIndexTest.insert({author:"李贺",title:"李凭箜篌引",article:"吴丝蜀桐张高秋,空山凝云颓不流。 江娥啼竹素女愁,李凭中国弹箜篌。 昆山玉碎凤凰叫,芙蓉泣露香兰笑。 十二门前融冷光,二十三丝动紫皇。 女娲炼石补天处,石破天惊逗秋雨。 梦入神山教神妪,老鱼跳波瘦蛟舞。 吴质不眠倚桂树,露脚斜飞湿寒兔。"})```

对textIndexTest 的作者创建索引:

代码语言:javascript
复制
db.textIndexTest.createIndex( { author: "text", description: "text" } )

注释:

db.collection.ensureIndex(keys, options) 这个语句在3.0被废弃掉, db.collection.ensureIndex() 现在是db.collection.createIndex()的一个别名 都是创建一个索引 如果索引不存在。

查看一下索引

代码语言:javascript
复制
db.textIndexTest.getIndexes()

接下来用索引搜索: 搜索李白的db.textIndexTest.find({text:{text:{text:{search:”李白”}}) 果: { “_id” : ObjectId(“5ae13997ae983fb3f92c9f5b”), “author” : “李白”, “title” : “静夜思”, “article” : “床前明月光,疑是地上霜。 举头望明月,低头思故乡。” } 单搜李白的“李”字

代码语言:javascript
复制
db.textIndexTest.find({$text:{$search:"李"}}) 

运行无结果。 单搜一个“王”字

代码语言:javascript
复制
db.textIndexTest.find({$text:{$search:"王"}}) 

出来了: { “_id” : ObjectId(“5ae14037ae983fb3f92c9f5d”), “author” : “张 王”, “title” : “你好”, “article” : “测试数据” } 不难看出: MongoDB中文全文索引建立方式与英文的简历几乎相同 是根据词(英文单词)的方式建立的。 如果一个值里面有多个值 则需要按空格方式隔开,”张 王” 系统则认为是两个词。 感觉MongodB的中文全文索引沒有想象中的强大。想要实现中文模糊搜素 可以用elasticsearch或者Sphinx,或者lucene

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=kd7kywpysntp

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年04月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档