标签: nosql

为存储在S3中的文件设计搜索系统的建议

我们正在努力让客户重新设计一个基本处理大量文件的现有系统.

文件(超过500万)当前存储在服务器文件系统上.客户端希望新系统将文件存储在S3中.文件还具有关联的元数据(名称,作者姓名,价格,描述等).

搜索功能也需要重新设计.以下是基本要求

  1. 应提供有关文件描述的全文搜索.
  2. 应该可以对文件的其他属性进行过滤.

此外,根据文件描述,系统还应该能够为类似文件提供建议.

我之前没有创建此类解决方案的经验,所以请求帮助和建议.我正在考虑以下解决方案:

  1. 将文件元数据存储在MongoDB中,并使用搜索功能(http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo)
  2. 使用Amazon DynamoDB.It提供api来扫描/查询数据集.
  3. 使用Lucene/Solr(我还没有使用过这些,我还需要深入了解)

我找到了这个项目,这与我要求的项目非常相似 http://www.thriftdb.com - 在主页上它说它是一个内置搜索的数据存储区.

如果这个问题应该是社区维基,请告诉我.

提前致谢.

search amazon-web-services nosql

1
推荐指数
1
解决办法
520
查看次数

从MongoDB shell生成带有新GUID的新行

我在带有GUID类型密钥的MongoDB集合中有一些文档,我希望能够使用shell将它们复制到具有新GUID的新行.我试过这个:

db.schedules.find().forEach(function(x) { 
    x._id = null; 
    db.schedules.save(x); 
});
Run Code Online (Sandbox Code Playgroud)

我希望_id字段在我将其设置为null后自动生成,但当然这很天真.如果有的话,我怎样才能在shell中生成新的GUID?

UPDATE

显然无法从shell生成GUID.我最终在C#中编写了一个迷你脚本,以便使用Mongo C#驱动程序.

mongodb nosql mongodb-shell

1
推荐指数
1
解决办法
2612
查看次数

使用MongoID的不区分大小写的查询条件

我有一个查询条件,它查找要匹配的元素数组(tags_array):

User.all_in('watchlists.tags_array' => tags_array)
Run Code Online (Sandbox Code Playgroud)

我想的标准是不区分大小写的,这意味着我希望它匹配%w[Ruby Web Framework]以及%w[RUBY WEB FRAMEWORK]%w[ruby web framework]等等...

这可能是通过mongoid还是我必须使用外部过滤技巧?

ruby ruby-on-rails mongodb nosql mongoid

1
推荐指数
1
解决办法
2149
查看次数

我们如何在Ruby on Rails中使用MongoDB?

有谁知道如何创建使用noSql数据库的rails应用程序?我们使用mysql数据库运行新的app_name -d mysql,我需要知道在noSql database的情况下我应该触发什么命令.如何配置和连接到该数据库以及如何使用它.我需要参考链接来学习.有人可以帮帮我吗?谢谢.

ruby-on-rails mongodb nosql

1
推荐指数
1
解决办法
2724
查看次数

mongodb没有使用索引

我有一个包含这些索引的集合:

db.colaboradores.getIndexKeys()
[ { "_id" : 1 }, { "nome" : 1 }, { "sobrenome" : 1 } ]
Run Code Online (Sandbox Code Playgroud)

和查询一样

db.colaboradores.find({_id: ObjectId("5040e298914224dca3000006")}).explain();
Run Code Online (Sandbox Code Playgroud)

那与索引很好

{
    "cursor" : "BtreeCursor _id_",
    "nscanned" : 0,
    "nscannedObjects" : 0,
    "n" : 0,
    "millis" : 0,
}
Run Code Online (Sandbox Code Playgroud)

但运行时:

db.colaboradores.find({nome: /^Administrador/}).explain()
Run Code Online (Sandbox Code Playgroud)

mongodb不再使用索引:

{
    "cursor" : "BtreeCursor nome_1",
    "nscanned" : 10000,
    "nscannedObjects" : 10000,
    "n" : 10000,
    "millis" : 25,
}
Run Code Online (Sandbox Code Playgroud)

任何解决方案 谢谢!

mongodb nosql

1
推荐指数
2
解决办法
5258
查看次数

是否还有其他NoSQL数据库支持像Redis这样的交易?

我一直在寻找像其他一些NoSQL数据库中的redis事务,但我找不到类似的东西.我知道这个答案确实有一些有效的观点,但没有深入解释我的问题的原因,我是否在另一个NoSQL数据库中忽略了这个功能?

transactions nosql

1
推荐指数
1
解决办法
511
查看次数

为什么叫NoSQL?

我最近与MongoDB合作并了解了它的无模式设计.但是,我对NoSQL一词感到困惑?为什么叫这个?它不使用SQL或类似SQL的查询吗?

我还从一篇文章中读到,主要区别在于数据的存储方式.这是真的?在MongoDB的情况下,它像JSON文档一样存储.

另外,我很困惑为什么我总是看到'NoSQL vs关系数据库'.NoSQL数据库不是关系型的吗?我相信MongoDB中的文档仍然通过某些键相关/链接(如果我错了,请纠正我).那为什么它被标记为非关系型?

提前致谢!

relational-database mongodb schemaless nosql

1
推荐指数
2
解决办法
2255
查看次数

RavenDB数据库配置

如何配置能够发送过多请求或接收过大响应的RavenDB数据库?

默认情况下,RavenDB不允许可能危及服务器或客户端稳定性的操作,并且RavenDB会话会自动强制执行以下限制:

  1. 如果未指定页面大小值,则结果的长度将限制为128个结果.在服务器端,页面大小有1,024个结果的硬限制.

  2. 每个会话对服务器的远程调用次数限制为30次.

我想在客户端配置DocumentStore/DocumentSession,它会增加页面大小值的限制和每个会话服务器的远程调用次数.

database configuration nosql ravendb

1
推荐指数
1
解决办法
838
查看次数

获取MongoDB当前集合名称

我正在使用mongoDB + Java + SpringData.没有它的名字,是否有可能获得当前的收藏?

谢谢!

java spring mongodb nosql spring-data

1
推荐指数
1
解决办法
1024
查看次数

使用HandlerSockets时,是否可以指定我想从查询中接收哪些字段?

使用HandlerSockets时,是否可以指定我想从查询中接收哪些字段?

这是我的样本表

CREATE TABLE pushed_media
(
    user_id BINARY(12) NOT NULL,
    story_id BINARY(12) NOT NULL,
    sent_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
    PRIMARY KEY ( user_id, story_id )
);
Run Code Online (Sandbox Code Playgroud)

查询它的PHP代码如下

$hs = new HandlerSocket($host, $port);
if (!($hs->openIndex(1, $dbname, $table, HandlerSocket::PRIMARY, 'user_id,story_id,sent_date')))
{
    echo $hs->getError(), PHP_EOL;
    die();
}

$user_id = pack('H*', substr(md5('ruslan'), 0, 24));
$story_id = pack('H*', substr(md5('story1'), 0, 24));

$retval = $hs->executeSingle(1, '=', array($user_id, $story_id), 1, 0);
Run Code Online (Sandbox Code Playgroud)

我需要的只是sent_date因为我已经知道其他两个价值观.是否有可能不再通过网络传输它们?

php mysql nosql handlersocket

1
推荐指数
1
解决办法
338
查看次数