我在MongoDB中创建了一个由11446615个文档组成的集合.
每个文件都有以下形式:
{
"_id" : ObjectId("4e03dec7c3c365f574820835"),
"httpReferer" : "http://www.somewebsite.pl/art.php?id=13321&b=1",
"words" : ["SEX", "DRUGS", "ROCKNROLL", "WHATEVER"],
"howMany" : 3
}
Run Code Online (Sandbox Code Playgroud)
httpReferer:只是一个网址
单词:从上面的url解析的单词.列表的大小在15到90之间.
我打算使用这个数据库来获取具有类似内容的网页列表.
我将使用单词字段查询此集合,以便在此字段上创建(或者更确切地说,开始创建)索引:
db.my_coll.ensureIndex({words: 1})
Run Code Online (Sandbox Code Playgroud)
我开始创建索引大约3个小时前,它似乎不能再在3小时内完成.
如何提高索引速度?或者也许我应该完全使用另一种方法解决这个问题?欢迎任何想法:)
在MongoDB中创建了一个由11446615个文档组成的集合.
每个文件都有以下形式:
{
"_id" : ObjectId("4e03dec7c3c365f574820835"),
"httpReferer" : "http://www.somewebsite.pl/art.php?id=13321&b=1",
"words" : ["SEX", "DRUGS", "ROCKNROLL", "WHATEVER"],
"howMany" : 3
}
Run Code Online (Sandbox Code Playgroud)
httpReferer:只是一个网址
单词:从上面的url解析的单词.列表的大小在15到90之间.
我打算使用这个数据库来获取具有类似内容的网页列表.
我将使用单词字段查询此集合,以便在此字段上创建(或者更确切地说,开始创建)索引:
db.my_coll.ensureIndex({words: 1})
Run Code Online (Sandbox Code Playgroud)
创建此集合需要很长时间.我尝试了两种方法(以下测试在我的笔记本电脑上进行):
我主要关注它减少生成集合的时间.我不需要复制(至少现在).查询也不必是快速的.
现在,问题的时间:
我只有一台机器有一个磁盘我可以运行我的应用程序.运行多个数据库实例并在它们之间拆分数据是否有意义?
以下是摘自Build.scala:
object MyProject {
val projectSettings = inConfig(Test)(
testOptions += Tests.Setup { _ =>
//subproject/runMain a.b.c.d.MainClass ??
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想在运行测试之前从另一个子项目运行一个主类。我怎样才能做到这一点?
为什么?由3个节点组成的群集的法定人数为2,因此它应处理一个节点的中断。
更多细节:
Cassandra版本:
ReleaseVersion: 1.1.6
Run Code Online (Sandbox Code Playgroud)
键空间和列族的配置:
Keyspace: QuestionAnswerService:
Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
Durable Writes: true
Options: [datacenter1:2]
Column Families:
//...
ColumnFamily: answersByQuestion
Key Validation Class: org.apache.cassandra.db.marshal.BytesType
Default column value validator: org.apache.cassandra.db.marshal.BytesType
Columns sorted by: org.apache.cassandra.db.marshal.BytesType
GC grace seconds: 864000
Compaction min/max thresholds: 4/32
Read repair chance: 1.0
DC Local Read repair chance: 0.0
Populate IO Cache on flush: false
Replicate on write: true
Caching: KEYS_ONLY
Bloom Filter FP chance: default
Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
Compression Options: …Run Code Online (Sandbox Code Playgroud) 这段代码抛出错误:
iex(35)> a = <<18::size(7)>>
<<18::size(7)>>
iex(36)> b = <<100::size(7)>>
<<100::size(7)>>
iex(37)> <<a <> b>>
** (ArgumentError) argument error
Run Code Online (Sandbox Code Playgroud)
为什么这段代码失败了?
如何使用变量连接位串?
(我根据mudasobwa的评论更新为示例)