MongoDB——理论基础
来源:互联网 发布:淘宝一千零一夜 编辑:程序博客网 时间:2024/05/17 21:05
建议:
- 1.创建 查询中用到的所有键 的索引
- 2.创建索引的缺点是 每次插入 更新 和删除的时候都会产生额外的开销,
- 因为数据库不但要执行这些操作,还要将这些操作在集合的索引中标记。
- 因此要尽可能的少建索引。每个集合默认的最大索引个数为64
- 3.一般来说,查询要返回集合中一半以上的结果,用表扫描会比几乎每条文档都索引要高效一些
- 4.对内嵌文档的键索引和普通键索引并无差异
- 5.通过建立分级文档加快扫描速度:
- 1.若文档没有层次的话,mongodb必须遍历文档中的每个字段
- 2.使用内嵌文档我们可以建立自己得“树”,合理使用层次能够减少mongodb对字段的访问
- 6.多条件and查询:将较苛刻的查询条件放在前面。可以减少工作量,尤其是在它有索引的时候
索引查询的限制:
索引不能被以下查询使用:- 1、正则表达式及非操作符,如$nin,$not 等
- 2、算术运算符 ,如$mod
- 3、$where 子句、
- 1、集合中的索引不能超过64个
- 2、索引名的长度不能超过125个字符
- 3、一个复合索引最多可以有31个字段
全文搜索
mongodb全文搜索:
mongodb用的是开源的snowball分词器,支持多种语言,但是不支持中文
默认语言是english,也可以在创建全文索引的时候指定其他支持语言
mongodb用的是开源的snowball分词器,支持多种语言,但是不支持中文
默认语言是english,也可以在创建全文索引的时候指定其他支持语言
db.de.ensureIndex( {txt: "text"}, {default_language: "german"} )
这样MongoDB就会认为“txt”中的文本是德语
mongodb全文检索中文方案:
mongodb全文检索中文方案:
MongoDB也支持文本的搜索,不过很可惜的是,MongoDB的$text不支持中文分词功能,在搜索中文文本时只会字符的匹配
- 1.官方方案:在mongodb的文档类型中加字段,存分词结果,然后从该字段中匹配。
- 2.lucene+IKAnalyzer:lucene 把大文本的数据 利用分词器 在新建的索引文件中建立索引取数据的时候从索引文件中取出mongodb 中的数据进行 索引的创建
0 0
- MongoDB——理论基础
- memcached—理论基础
- vsts项目管理理论基础——MSF
- 课程设计——AVL搜索树理论基础
- SAX解析XML——理论基础
- 【ARM】初识ARM——硬件理论基础
- 【自考】软件开发工具—理论基础
- 理论基础
- 理论基础
- GIS坐标系转换——理论基础(一)
- GIS坐标转换——理论基础(二)
- MySQL 入门(二)—— MySQL理论基础
- MySQL 入门(二)—— MySQL理论基础
- 学习Spring第一课——spring理论基础
- 大数据学习——数据挖掘理论基础
- Spark MLlib 决策树算法(一)——理论基础
- 公钥密码学的理论基础—单向函数
- 【MongoDB】MongoDB笔记—常用命令
- 早上发的可编辑ListView的Demo已经整理出来了
- 1004. 成绩排名 (20)
- 数字三角形&&添加回文串&&最短排序&&字符串通配
- iOS简单实用的AES加密(亲测,能用)
- SonarQube与Eclipse配合
- MongoDB——理论基础
- AVLoadingIndicatorView
- UIViewController中addChildViewController的坑:viewWillAppear不调用
- 自定js方法增加回调函数
- android中webservice请求的异步回调封装(一)
- bash shell 登陆时的执行的用户脚本
- 06.ThreeJs开发指南-第六章-高级几何体
- rplidar使用hector_slam的hector_mapping geotiff创建地图方法(2)
- 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布