Tag: 索引

ElasticSearch – 聚合/分组:通过sorting和分页

我试图使用Elasticsearch(2.4)聚合通过使用该查询多个索引上的“productId”进行分组 { "from": 0, "size": 0, "min_score": 0.15, "query": { "filtered": { "query": { "bool": { "should": [ { "match_phrase_prefix": { "keywords.family": { "query": "low fat milk", "fuzziness": 0.7, "boost": 5 } } } ] } } } }, "aggs": { "group_by_0": { "terms": { "field": "productId", "size": 50 }, "aggs": { "top_tag_hits": { "top_hits": […]

在关联数组中进行双重索引

我正在使用Node.js构build一个服务器。 我将代表用户的对象存储在关联数组中,现在这些对象的索引是该连接的套接字标识。 使用Socket.io库,我通过简单地执行socket.id来获得它,因此对于每个处理程序来说,照顾我的请求,我总是可以知道哪个用户提出了请求。 客户端每个用户都有连接用户的id(与socket ID不同)。 问题araises当我有一个处理程序,用于发送消息从用户到另一个,我举个例子: 用户A需要发送一个消息给用户B,我的协议指定的消息是这样的: MSG_KEY:{MSG:'hello world',USER_ID:'12345'} 服务器端我有一个处理程序,侦听“MSG_KEY”,当消息发送它执行和使用socket.id我可以检索谁发出请求,但问题是,我需要也得到用户B但这次使用他的USER_ID。 我不想使用socket.id来避免会话欺骗。 我首先想到了在我的数组中的索引,通过从socket.id和用户ID索引它们的用户。 我的问题是:这样做是个好主意吗? socket.io提供了一个简化这个的方法吗?

索引一个embedded式文档的关键是什么意思?

我仍然不明白如何索引一个embedded式文档的关键真正的作品。 假设我有以下博客文章的集合: { _id:0, author: 'John Doe', content: 'How indexing an embedded document work?', comments: [ { sender:'Jane Doe', content: 'I can\'t make it out either.' }, etc… ] }, etc… 假设我现在在注释中的sender属性中设置一个索引: db.blog.createIndex({'comments.sender':1}) 现在的问题是: 这是否意味着发送者按升序排列的所有元素都创build了一个大的索引,而不pipe他们在哪个数组中? 或者为每个数组创build一个索引? 为了更清楚:当我这样做 blog.find({'comments.sender':'Jane Doe'}).toArray(function(err, array){}) 是否会遍历每个博客post,并查找每个数组,直到在该数组中find一条logging,并转到下一个post中的下一个数组? 还是有一个很大的索引,其中每个logging(由发件人sorting)映射到这个匹配所在的原始数组?

mongoose按分数进行索引

我正在尝试在mongoose中创build一个排行榜,并且正在通过提升分数来索引我的分数模式。 这里是我的代码: db.once('open', function callback () { console.log('Successfully connected to MongoDB'); var scoresSchema = new Schema ({ score: Number, user: String }, {autoIndex: false}); scoresSchema.index({ user: 1, score: -1 }); StatScore = mongoose.model('Score', scoresSchema); }); 它的输出如下 [ { _id: 57715497860521f404cfebf0, score: 87, user: 'seth', __v: 0 }, { _id: 577157151f39c2320548e6e5, score: 99, user: 'seth', __v: […]

Node.js MongoDB创build多个索引:没有指定索引名称

我正在使用MongoDB 2.6.11版本 我该如何解决这个错误? 在Node.js API参考中 ,您可以传递的唯一参数是一个索引规格数组和一个callback函数,我的意思是指定索引名称? 我正在使用的代码是下面(假设我已经有需要mongoclient和连接到数据库): db.collection("MyCollection").createIndexes( [ {field1: 1}, {field2: 1, field3: 1} ], function(err, result){ //Error handling code } ); 错误代码是67,错误的完整堆栈跟踪如下: MongoError: no index name specified at Function.MongoError.create (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11) at commandCallback (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:1154:66) at Callbacks.emit (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:119:3) at messageHandler (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:295:23) at Socket.dataHandler (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:285:22) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:146:16) at Socket.Readable.push […]

如何在angularjs中使用ng-class应用css

我有一个标签,当我在我的领域没有数据时,我想要应用课程。 <label class="col-xs-6 btn btn-white" ng-click="checkMultiSelect(vm.settingsObj.customfields_student,val.key)" ng-class="{'active': vm.settings.customfields_student.indexOf(????) == -1 }"> 我的设置对象是这样的: "details": { "__v": 0, "_id": "58413d990533de0d1a3a4986", "customfields_student": [ "" ], } } 任何人可以build议帮助我如何才能申请类,当它是空的?

MYSQL:需要帮助快速增长的表和减less速度(4mio行)

我正在以快速增长的速度增长的桌面(目前有4百万行,每天插入30万行)面临一些问题。 我希望我能在这里得到一些想法和build议,以改善我的设置,挤出我的盒子里的最后一点,在不久的将来把我的网站拿下来之前。 设置: Intel i7 720 8GB RAM 2x750GB SATA RAID 0 CentOS MySQL 5.5.10 Node.js + node-lib_mysql-client 表格定义: CREATE TABLE IF NOT EXISTS `canvas` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `x1` int(11) NOT NULL, `y1` int(11) NOT NULL, `x2` int(11) NOT NULL, `y2` int(11) NOT NULL, `c` int(4) unsigned NOT NULL, `s` int(3) […]

部分索引在mongodb / mongoose

在稀疏索引文档中,我find关于mongodb 3.2部分索引的注释 在版本3.2中更改:从MongoDB 3.2开始,MongoDB提供了创build部分索引的选项。 部分索引提供了稀疏索引function的超集。 如果您使用的是MongoDB 3.2或更高版本,则部分索引应优先于稀疏索引。 部分索引是非常有用的,我想在我的项目中使用它们。 mongoose可以用它们吗?

如何在生产模式下索引mongoose字段,为什么我应该禁用autoindexfunction?

你好我正在做一个Android应用程序,我在服务器端使用mongoDB node.js,现在实际上,直到现在我编码所有在开发,但现在我想我的应用程序在生产中,现在当我阅读mongoose的文档他们写了这个 当您的应用程序启动时,Mongoose将自动为您的模式中定义的每个索引调用ensureIndex。 尽pipe对开发很好,但build议在生产中禁用此行为,因为索引创build可能会对性能产生重大影响。 通过将模式的autoIndex选项设置为false来禁用该行为 现在任何人都可以告诉我什么是我的意思是我有一些字段,我已经索引现在为什么禁用autoIndex,我不索引每一个领域,只是其中一些我也看到了这个问题之前在stackoverflow但我没有人解释了这一点详细我已阅读这里的答案在生产代码Mongoose索引 Mongoose调用ensureIndex启动时,但不build议。 那么为什么这是默认的? 还有一个问题,我只是想知道,因为我的所有索引都在我的mongoDB部分,所以甚至在架构级别描述它们有什么用处,我的意思是这样认为每个操作CRUD每一件事情发生在数据库和数据库级别我们有定义所有的索引,那么为什么我们应该再次在模式级别索引他们请回答我是这个新手这就是为什么不知道这么多回合这我知道我错过了难题的一大部分,但这将是真正有帮助的,如果有人可以分享一些这个。 谢谢

Elasticsearch – 按优先级例外进行过滤和按名称sorting

我试图按优先级例外进行过滤和名称sorting,这意味着即使结果按字母顺序sorting,我也希望首先出现一个特定的名称。 例如 – 这是我的基本查询 { "from": 0, "size": 500, "min_score": 0.15, "query": { "filtered": { "filter": { "bool": { "must": [ { "exists": { "field": "brand.id" } } ] } } } }, "sort": [ { "brand.names.1.raw": "asc" } ] } 简而言之,我希望这个数组[“百事可乐”,“可口可乐”,“可口可乐”]按照“可口可乐”的优先顺序进行sorting,从而将其sorting为“可口可乐” ,“可口可乐”,“百事可乐”] 现在它按字母顺序sorting。 我想到了一些可行的想法: 通过“匹配”增加一个“应该”。 但后来我有sorting“_score”的问题,它打破了我的字母sorting,虽然我首先按“_score”和品牌名称sorting。 添加到“bool”中的示例:“should”:[{“match”:{“brand.id”:{“query”:34709,“boost”:20}}} 我尝试了“聚合”,以便第一个查询(桶)将“匹配”具体的品牌名称和sortingalphabeticaly里面,第二个查询将按字母sorting只。 但我完全搞砸了。 我必须使用过滤 – >filter,我不能使用脚本查询。 谢谢。 更新这里是一个文件的例子,以及它如何sorting。 […]