MongoDB 从3.2 版本以后添加了对中文索引的支持:
官网链接:https://docs.mongodb.com/manual/reference/text-search-languages/
下面就举例来看一下MongoDB 的中文索引是怎么样的?
创建一个集合textIndexTest:
插入下面四条数据:
 
db.textIndexTest.insert({author:"杜甫",title:"绝句",article:"两个黄鹂鸣翠柳,   一行白鹭上青天。窗含西岭千秋雪,门泊东吴万里船。"})1
 
db.textIndexTest.insert({author:"李白",title:"静夜思",article:"床前明月光,疑是地上霜。 举头望明月,低头思故乡。"})1
 
db.textIndexTest.insert({author:"张 王",title:"你好",article:"测试数据"})1
 
db.textIndexTest.insert({author:"李贺",title:"李凭箜篌引",article:"吴丝蜀桐张高秋,空山凝云颓不流。 江娥啼竹素女愁,李凭中国弹箜篌。 昆山玉碎凤凰叫,芙蓉泣露香兰笑。 十二门前融冷光,二十三丝动紫皇。 女娲炼石补天处,石破天惊逗秋雨。 梦入神山教神妪,老鱼跳波瘦蛟舞。 吴质不眠倚桂树,露脚斜飞湿寒兔。"})```1
对textIndexTest 的作者创建索引:
 
db.textIndexTest.createIndex( { author: "text", description: "text" } )1
注释:
db.collection.ensureIndex(keys, options) 这个语句在3.0被废弃掉, db.collection.ensureIndex() 现在是db.collection.createIndex()的一个别名
都是创建一个索引 如果索引不存在。
查看一下索引
 
db.textIndexTest.getIndexes()1
接下来用索引搜索:
搜索李白的db.textIndexTest.find({text:{text:{search:”李白”}}) 果:
{ “_id” : ObjectId(“5ae13997ae983fb3f92c9f5b”), “author” : “李白”, “title” : “静夜思”, “article” : “床前明月光,疑是地上霜。 举头望明月,低头思故乡。” }
单搜李白的“李”字
 
db.textIndexTest.find({$text:{$search:"李"}}) 1
运行无结果。
单搜一个“王”字
 
db.textIndexTest.find({$text:{$search:"王"}}) 1
出来了:
{ “_id” : ObjectId(“5ae14037ae983fb3f92c9f5d”), “author” : “张 王”, “title” : “你好”, “article” : “测试数据” }
不难看出:
MongoDB中文全文索引建立方式与英文的简历几乎相同 是根据词(英文单词)的方式建立的。
如果一个值里面有多个值 则需要按空格方式隔开,”张 王” 系统则认为是两个词。
感觉MongodB的中文全文索引沒有想象中的强大。想要实现中文模糊搜素
可以用elasticsearch或者Sphinx,或者lucene
原文链接:https://blog.csdn.net/a41888313/article/details/80091935

MongoDB 中文的全文索引的更多相关文章

  1. 【MongoDB】2019年MongoDB中文社区广州大会,干货满满的分享活动

    1 介绍 MongoDB中文社区(mongoing.com)是大中华区获得官方认可的中文社区,11月23日下午,在广州举办了线下用户大会,带给大家一手干货和实践. 2 大会议程 大会组织者对时间的把控 ...

  2. NEO4J中文分词全文索引自动更新解决方案

    NEO4J中文分词全文索引自动更新解决方案 一.样例数据 二.英文与中文全文索引差别 1.创建NEO4J默认索引 2.删除索引 3.创建支持中文分词的索引 三.APOC自带英文全文索引过程(可自动更新 ...

  3. mysql中文进行全文索引支持问题

    先来看看对一个字段做全文索引,作为一个数据库系统需要做哪些工作? 假设一个文章表里面包含几个字段:文章id.文章作者.文章标题.文章内容 比如,我们对文章内容这个字段artilce_content建立 ...

  4. MongoDB中文档操作(二)

    一.插入文档  1.db.集合名.insert()   插入一个:db.user.insert({name:"Join",age:13,address:"beijing& ...

  5. mongodb 索引,全文索引与唯一索引

    唯一索引创建: db.createIndex({name: 1}, {unique: true})

  6. 玩转mongodb(七):索引,速度的引领(全文索引、地理空间索引)

    本篇博文主要介绍MongoDB中一些常用的特殊索引类型,主要包括: 用于简单字符串搜索的全文本索引: 用于球体空间(2dsphere)和二维平面(2d)的地理空间索引. 一.全文索引 MongoDB有 ...

  7. MongoDB的全文索引

    ​ Table of Contents 背景 如何使用 准备工作:插入数据 建立全局索引 查询结果 使用中存在哪些问题? 英文存在停止词 中文无法采用全文索引 前面了解了多种索引方式,比如单键索引,多 ...

  8. Mongodb 学习笔记简介

    目录 1       准备工作... 5 1.1        相关网址... 6 1.1        下载安装... 6 1.1.1         下载:... 6 1.1.2         ...

  9. MongoDB 高级教程

    MongoDB 关系 MongoDB 的关系表示多个文档之间在逻辑上的相互联系. 文档间可以通过嵌入和引用来建立联系. MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: ...

随机推荐

  1. 67 GC 垃圾回收机制

    GC是JVM中自带的一个线程 他会不定时来堆中回收那些不再使用的对象,以释放内存 可以通过System.gc()来主动建议jvm尽快调度gc来回收垃圾 不同的平台的jvm对GC的策略是有所不同的 我们 ...

  2. 破解Charles4.2.7版本

    软件下载地址:请点我 密码:sats dmg软件解密密码是:xclient.info 激活方法 1.将 Charles.app 拖至 应用程序 文件夹 2.将 keygen.jar 拖至 桌面 3.打 ...

  3. 『7.3 NOIP模拟赛题解』

    T1 gift Description ​ 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物. ​ 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜 ...

  4. 揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】

    2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实 ...

  5. mysql存储过程的函数

    存储过程和函数:类似java中的方法 好处:提高代码的重用性 .简化操作.减少了和数据库连接的次数,提高了效率 含义:一组预先编译好的sql语句集合,成批处理语句 语法: 一:创建语法 create ...

  6. GIT VI操作汇总

    在Git Bash Here中用命令行 pull\push\merge 代码,如果存在冲突或者自动合并时,会自动进入VI界面 1.按下 ESC 键,退出编辑模式,切换到命令模式. 2.输入 :wq , ...

  7. 一张图看懂SharpCamera

    通过下面的图片,可以瞬间看懂整个类库的脉络.

  8. java log4j 打日志到控制台同时打印到不同文件

    1.pom配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  9. Nginx中的$document_uri与$request_uri以及$http_referer

    Nginx基于$document_uri的访问控制,变量$document_uri该变量等价于$uri,其实也等价于location匹配. 示例1: 当用户请求的url中包含/admin/时,直接返回 ...

  10. ubuntu 开启ip包转发

    1. 开启IP转发 //临时 # echo "1"> /proc/sys/net/ipv4/ip_forward //永久 # nano /etc/sysctl.conf n ...