mongodb 建立索引提示异常:WiredTigerIndex::insert: key too large to index, failing 1483

{
    "ok" : 0.0,
    "errmsg" : "WiredTigerIndex::insert: key too large to index, failing  1483 { : \"山东隔断|山东隔断厂家|山东隔断价格|山东活动隔断|山东酒店活动隔断|烟台活动玻璃隔断|山东活动展板|山东隔??...\" }",
    "code" : 17280
}

MongoDB will not create an index on a collection if the index entry for an existing document exceeds the index key limit (1024 bytes). You can however create a hashed index or text index instead:

db.logcollection.ensureIndex({"Module":"hashed"})

or

db.logcollection.ensureIndex({"Module":"text"})

mongodb 对字段中有超过 1024 字节的不会建立索引,但是可以使用text 索引或者hashed 索引来实现。

关于各种索引的区别请看:http://www.mongoing.com/archives/2797

时间: 2024-10-25 10:47:36

mongodb 建立索引提示异常:WiredTigerIndex::insert: key too large to index, failing 1483的相关文章

mongodb建立索引时如何指定超时时间

mongodb自从2.2版本起为索引建立了TTL(time to live),可以指定一个类型为日期的字段为文档的索引并指定TTL(以秒为单位),mongodb内部每分钟执行一次检查TTL,如果超时则删除指定的文档,该特性用来实现session很适合. 使用java创建索引时,使用如下 //col为collection对象 BasicDBObject index = new BasicDBObject(); //_lastm为Date类型数据 index.put("_latm", 1)

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB. 第二,更重要的是,这些索引的建立对你的应用提高也是有限的. 对于应用的最佳索引策略应该基于很多的重要因素.包含了你期望查询的类型, 数据读取与写入的比率,甚至于你服务器的空闲内存.意思就是, 需要对线上的产品做很多的测试剖析工作,才能调整出最佳的索引策略. 没有什么好的方法可以替代实际经验的. 索引策略 下面有些索引的基本法则 创建的索引要匹配查询. 如果你仅仅要查询单个字段.索引这个字段

FOREIGN KEY 外键约束; UNIQUE和PRIMARY KEY 主键约束、CREATE INDEX建立索引的使用

1)foreign key 是个约束,意思是说如果你给A字段设置了外键约束,以后你要往A字段插入数据,这个数据一定是要在foreign key 后面跟的那个字段中存在的值.这个的意义就是约束了数据的完整性,不会插入错误的数据. 修改添加t_topic外键约束: ALTER TABLE t_topic ADD CONSTRAINT fk_userTopics FOREIGN KEY (user_id) REFERENCES t_users(id) 删除表t_topic外键: ALTER TABLE

和我一起打造个简单搜索之Logstash实时同步建立索引

用过 Solr 的朋友都知道,Solr 可以直接在配置文件中配置数据库连接从而完成索引的同步创建,但是 ElasticSearch 本身并不具备这样的功能,那如何建立索引呢?方法其实很多,可以使用 Java API 的方式建立索引,也可以通过 Logstash 的插件 logstash-input-jdbc 完成,今天来探讨下如何使用 logstash-input-jdbc 完成全量同步以及增量同步. 环境 本文以及后续 es 系列文章都基于 5.5.3 这个版本的 elasticsearch

MongoDB中索引的创建和使用详解

索引通常能够极大的提高查询的效率.在系统中使用查询时,应该考虑建立相关的索引.在MongoDB中创建索引相对比较容易. mongodb中的索引在概念上和大多数关系型数据库如MySQL是一样的.当你在某种情况下需要在MySQL中建立索引,这样的情景同样适合于MongoDB. 基本操作 索引是一种数据结构,他搜集一个集合中文档特定字段的值.MongoDB的查询优化器能够使用这种数据结构来快速的对集合(collection)中的文档(collection)进行寻找和排序.准确来说,这些索引是通过B-T

数据库为何要建立索引的原因说明

数据库索引是为了增加查询速度而对表字段附加的一种标识.见过很多人机械的理解索引的概念,认为增加索引只有好处没有坏处. 这里想把之前的索引学习笔记总结一下: 首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合.如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度.那么在任何时候都应该加索引么?这里有几个反例:1.如果每次都需要取到所有表记录,无论

MongoDB之索引

索引是用来加快查询的,这里不讲解索引的原理和数据结构,其实大部分数据库的索引就是B+Tree,想要了解的同学可以看索引原理,要掌握如何为查询配置最佳索引会有些难度. MongoDB索引几乎和关系型数据库的索引一样.绝大数优化关系型数据库索引的技巧同样适用于MongoDB. 我们举一个例子,现在集合中插入多个文档: db.lf.insert({"name":"lf","age":23,"isactive":true}) db.l

练习 MongoDB 操作 —— 索引篇(二)

目录 Mongodb 索引篇(二) 索引 操作 创建索引 查看索引 删除索引 唯一索引 稀疏索引 性能示例 游标 Mongodb 索引篇(二) mongodb 更新于 2017-09-19 约 11 分钟 原文链接:https://segmentfault.com/a/1190000011263553 本文围绕索引.游标两部分进行探索,对MongoDB数据库的索引部分有一个大概的了解: 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取

MongoDB数据库索引

前面的话 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录.这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的.本文将详细介绍MongoDB数据库索引 引入 索引能够提高查询效率,如何体现呢?接下来使用性能分析函数explain()来进行分析说明 首先,插入10万条数据 接着,不创建索引,来寻找time范围在100和200之间的文档 由图中所知,tot