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. Field "details" doesn't have a default value

    [转载:原文链接http://my.oschina.net/wojibuzhu/blog/511104] MySQL 1364 错误提示:#1364 - Field "details&quo ...

  2. 通过ip查询相关网络位置信息

    结果:

  3. 从nsurlsession、Alamofire到moya

    更好的理解(抽象).更少的构建(配置).更方便的表达(语言) 一.iOS系统的网络编程(DSL概念) ios缺省的网络编程只是给出了网络编程的基本概念: urlsession.request.resp ...

  4. Python变量问题:命名、类型、赋值

    1.变量问题 1.1变量命名: (1)变量名只能包含字母.数字和下划线.变量名可以字母或下划线开头,但不能以数字开头.例如,name1_,_name1都是合法的,但1name就不行(2)变量名中间不能 ...

  5. latex设置不同中英文字体

    latex中,中文我喜欢宋体,英文喜欢Courier New,于是,我分别设置了中英文字体,文章瞬间顺眼了很多. \documentclass[UTF8]{ctexart} \usepackage[a ...

  6. 分享大麦UWP版本开发历程-01.响应式轮播顶部焦点图

    话说有一天,临近下班无心工作,在网上看各种文章,阅读到了一篇名为<聊聊大麦网UWP版的首页顶部图片联动效果的实现方法>(传递:http://www.cnblogs.com/hippieZh ...

  7. 浅谈 G1 GC 日志格式

    在 Java9 中,G1 GC 将成为默认的垃圾收集器,G1 垃圾收集器的关键特性之一是能够在不牺牲吞吐量的同时,限制 GC 暂停时间(即可以设置所需的最大停顿时间). 由于 G1 GC 正在逐渐成为 ...

  8. w3c网站案例

    w3c网站 reset操作 body { background-color: #eee; } html, body, h1, h2, h3, h4, h5, h6, ul, p { margin: 0 ...

  9. MySQL基础-1

    目录 数据库的基本概念 什么是数据库 为什么要使用数据库 数据库的分类 数据库的重要概念 数据库的安装 安装步骤 简单使用数据库 数据库的基本概念 什么是数据库 字面意思数据库就是存储数据的仓库,正常 ...

  10. 前端1-----A标签 (锚点)

    Title 头部,顶端, 点击跳转到id='abc' 1 2 到百度这里,点击跳转百度 3 到这里了 4 alex1 5 6 根据id 从底部到头      根据id='a1' 到指定位置      ...